@aeternity/aepp-sdk 12.1.3 → 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 -8859
  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 +86 -47
  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 -508
  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 -537
  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
@@ -2,7 +2,6 @@ import _buffer from "buffer";
2
2
  const {
3
3
  Buffer: _Buffer
4
4
  } = _buffer;
5
-
6
5
  /*
7
6
  * ISC License (ISC)
8
7
  * Copyright 2018 aeternity developers
@@ -19,9 +18,9 @@ const {
19
18
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
19
  * PERFORMANCE OF THIS SOFTWARE.
21
20
  */
22
- import nacl from 'tweetnacl'; // js extension is required for mjs build, not importing the whole package to reduce bundle size
21
+ import nacl from 'tweetnacl';
22
+ // js extension is required for mjs build, not importing the whole package to reduce bundle size
23
23
  // eslint-disable-next-line import/extensions
24
-
25
24
  import _blakejsBlake2bJs from 'blakejs/blake2b.js';
26
25
  const {
27
26
  blake2b
@@ -30,30 +29,27 @@ import _varuintBitcoin from 'varuint-bitcoin';
30
29
  const {
31
30
  encode: varuintEncode
32
31
  } = _varuintBitcoin;
33
- import { str2buf } from "./bytes.mjs";
34
32
  import { concatBuffers } from "./other.mjs";
35
33
  import { decode, encode, Encoding } from "./encoder.mjs";
36
34
  /**
37
35
  * Generate address from secret key
38
- * @param secret - Private key
36
+ * @param secret - Private key as hex string
39
37
  * @returns Public key encoded as address
40
38
  */
41
-
42
39
  export function getAddressFromPriv(secret) {
43
- const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;
40
+ const secretBuffer = typeof secret === 'string' ? _Buffer.from(secret, 'hex') : secret;
44
41
  const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);
45
42
  return encode(keys.publicKey, Encoding.AccountAddress);
46
43
  }
44
+
47
45
  /**
48
46
  * Check if address is valid
49
47
  * @param address - Address
50
48
  * @param prefix - Transaction prefix. Default: 'ak'
51
49
  * @returns is valid
52
50
  */
53
-
54
51
  export function isAddressValid(address) {
55
52
  let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Encoding.AccountAddress;
56
-
57
53
  try {
58
54
  decode(address);
59
55
  return true;
@@ -61,37 +57,38 @@ export function isAddressValid(address) {
61
57
  return false;
62
58
  }
63
59
  }
60
+
64
61
  /**
65
62
  * Generate a random salt (positive integer)
66
63
  * @returns random salt
67
64
  */
68
-
69
65
  export function genSalt() {
70
- return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));
66
+ const [random] = new BigUint64Array(nacl.randomBytes(8).buffer);
67
+ return Number(random % BigInt(Number.MAX_SAFE_INTEGER));
71
68
  }
69
+
72
70
  /**
73
71
  * Converts a positive integer to the smallest possible
74
72
  * representation in a binary digit representation
75
73
  * @param value - Value to encode
76
74
  * @returns Encoded number
77
75
  */
78
-
79
76
  export function encodeUnsigned(value) {
80
77
  const binary = _Buffer.allocUnsafe(4);
81
-
82
78
  binary.writeUInt32BE(value);
83
79
  return binary.slice(binary.findIndex(i => i !== 0));
84
80
  }
81
+
85
82
  /**
86
83
  * Calculate 256bits Blake2b hash of `input`
87
84
  * @param input - Data to hash
88
85
  * @returns Hash
89
86
  */
90
-
91
87
  export function hash(input) {
92
88
  return _Buffer.from(blake2b(input, undefined, 32)); // 256 bits
93
- } // Todo Duplicated in tx builder. remove
89
+ }
94
90
 
91
+ // Todo Duplicated in tx builder. remove
95
92
  /**
96
93
  * Compute contract address
97
94
  * @category contract
@@ -99,22 +96,23 @@ export function hash(input) {
99
96
  * @param nonce - Round when contract was created
100
97
  * @returns Contract address
101
98
  */
102
-
103
99
  export function encodeContractAddress(owner, nonce) {
104
100
  const publicKey = decode(owner);
105
101
  const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);
106
102
  return encode(hash(binary), Encoding.ContractAddress);
107
- } // KEY-PAIR HELPERS
103
+ }
104
+
105
+ // KEY-PAIR HELPERS
108
106
 
109
107
  /**
110
108
  * Generate keyPair from secret key
111
109
  * @param secret - secret key
112
110
  * @returns Object with Private(privateKey) and Public(publicKey) keys
113
111
  */
114
-
115
112
  export function generateKeyPairFromSecret(secret) {
116
113
  return nacl.sign.keyPair.fromSecretKey(secret);
117
114
  }
115
+
118
116
  /**
119
117
  * Generate a random ED25519 keypair
120
118
  * @param raw - Whether to return raw (binary) keys
@@ -124,23 +122,21 @@ export function generateKeyPairFromSecret(secret) {
124
122
  export function generateKeyPair() {
125
123
  let raw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
126
124
  const keyPair = nacl.sign.keyPair();
127
-
128
125
  const publicBuffer = _Buffer.from(keyPair.publicKey);
129
-
130
126
  const secretBuffer = _Buffer.from(keyPair.secretKey);
131
-
132
127
  if (raw) {
133
128
  return {
134
129
  publicKey: publicBuffer,
135
130
  secretKey: secretBuffer
136
131
  };
137
132
  }
138
-
139
133
  return {
140
134
  publicKey: encode(publicBuffer, Encoding.AccountAddress),
141
135
  secretKey: secretBuffer.toString('hex')
142
136
  };
143
- } // SIGNATURES
137
+ }
138
+
139
+ // SIGNATURES
144
140
 
145
141
  /**
146
142
  * Generate signature
@@ -148,48 +144,52 @@ export function generateKeyPair() {
148
144
  * @param privateKey - Key to sign with
149
145
  * @returns Signature
150
146
  */
151
-
152
147
  export function sign(data, privateKey) {
153
148
  return nacl.sign.detached(_Buffer.from(data), _Buffer.from(privateKey));
154
149
  }
150
+
155
151
  /**
156
152
  * Verify that signature was signed by public key
157
- * @param data - Data to verify
158
- * @param signature - Signature to verify
159
- * @param publicKey - Key to verify against
160
- * @returns Valid?
153
+ * @param data - Data that was signed
154
+ * @param signature - Signature of data
155
+ * @param address - Address to verify against
156
+ * @returns is data was signed by address
161
157
  */
162
-
163
- export function verify(data, signature, publicKey) {
164
- const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey;
165
- return nacl.sign.detached.verify(data, signature, publicKeyBuffer);
158
+ export function verify(data, signature, address) {
159
+ return nacl.sign.detached.verify(data, signature, decode(address));
166
160
  }
167
161
  export function messageToHash(message) {
168
162
  const p = _Buffer.from('aeternity Signed Message:\n', 'utf8');
169
-
170
163
  const msg = _Buffer.from(message, 'utf8');
171
-
172
164
  return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]));
173
165
  }
174
166
  export function signMessage(message, privateKey) {
175
167
  return sign(messageToHash(message), privateKey);
176
168
  }
177
- export function verifyMessage(str, signature, publicKey) {
178
- return verify(messageToHash(str), signature, publicKey);
169
+
170
+ /**
171
+ * Verify that message was signed by address
172
+ * @param message - Message that was signed
173
+ * @param signature - Signature of message
174
+ * @param address - Address to verify against
175
+ * @returns is data was signed by address
176
+ */
177
+ export function verifyMessage(message, signature, address) {
178
+ return verify(messageToHash(message), signature, address);
179
179
  }
180
+
180
181
  /**
181
182
  * Check key pair for validity
182
183
  *
183
184
  * Sign a message, and then verifying that signature
184
185
  * @param privateKey - Private key to verify
185
- * @param publicKey - Public key to verify
186
+ * @param publicKey - Public key to verify as hex string
186
187
  * @returns Valid?
187
188
  */
188
-
189
189
  export function isValidKeypair(privateKey, publicKey) {
190
190
  const message = _Buffer.from('TheMessage');
191
-
192
191
  const signature = sign(message, privateKey);
193
- return verify(message, signature, publicKey);
192
+ const publicKeyBuffer = typeof publicKey === 'string' ? _Buffer.from(publicKey, 'hex') : publicKey;
193
+ return verify(message, signature, encode(publicKeyBuffer, Encoding.AccountAddress));
194
194
  }
195
195
  //# sourceMappingURL=crypto.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.mjs","names":["nacl","str2buf","concatBuffers","decode","encode","Encoding","getAddressFromPriv","secret","secretBuffer","keys","sign","keyPair","fromSecretKey","publicKey","AccountAddress","isAddressValid","address","prefix","e","genSalt","Math","floor","random","Number","MAX_SAFE_INTEGER","encodeUnsigned","value","binary","allocUnsafe","writeUInt32BE","slice","findIndex","i","hash","input","from","blake2b","undefined","encodeContractAddress","owner","nonce","ContractAddress","generateKeyPairFromSecret","generateKeyPair","raw","publicBuffer","secretKey","toString","data","privateKey","detached","verify","signature","publicKeyBuffer","messageToHash","message","p","msg","varuintEncode","length","signMessage","verifyMessage","str","isValidKeypair"],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\nimport nacl, { SignKeyPair } from 'tweetnacl';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport { blake2b } from 'blakejs/blake2b.js';\nimport { encode as varuintEncode } from 'varuint-bitcoin';\n\nimport { str2buf } from './bytes';\nimport { concatBuffers } from './other';\nimport {\n decode, encode, Encoded, Encoding,\n} from './encoder';\n\n/**\n * Generate address from secret key\n * @param secret - Private key\n * @returns Public key encoded as address\n */\nexport function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress {\n const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;\n const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);\n return encode(keys.publicKey, Encoding.AccountAddress);\n}\n\n/**\n * Check if address is valid\n * @param address - Address\n * @param prefix - Transaction prefix. Default: 'ak'\n * @returns is valid\n */\nexport function isAddressValid(\n address: string,\n prefix: Encoding = Encoding.AccountAddress,\n): boolean {\n try {\n decode(address as Encoded.Generic<typeof prefix>);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n */\nexport function genSalt(): number {\n return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n */\nexport function encodeUnsigned(value: number): Buffer {\n const binary = Buffer.allocUnsafe(4);\n binary.writeUInt32BE(value);\n return binary.slice(binary.findIndex((i) => i !== 0));\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function hash(input: string | Uint8Array): Buffer {\n return Buffer.from(blake2b(input, undefined, 32)); // 256 bits\n}\n\n// Todo Duplicated in tx builder. remove\n/**\n * Compute contract address\n * @category contract\n * @param owner - Address of contract owner\n * @param nonce - Round when contract was created\n * @returns Contract address\n */\nexport function encodeContractAddress(\n owner: Encoded.AccountAddress,\n nonce: number,\n): Encoded.ContractAddress {\n const publicKey = decode(owner);\n const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);\n return encode(hash(binary), Encoding.ContractAddress);\n}\n\n// KEY-PAIR HELPERS\n\n/**\n * Generate keyPair from secret key\n * @param secret - secret key\n * @returns Object with Private(privateKey) and Public(publicKey) keys\n */\nexport function generateKeyPairFromSecret(secret: Uint8Array): SignKeyPair {\n return nacl.sign.keyPair.fromSecretKey(secret);\n}\n\n/**\n * Generate a random ED25519 keypair\n * @param raw - Whether to return raw (binary) keys\n * @returns Key pair\n */\nexport function generateKeyPair(raw: true): { publicKey: Buffer; secretKey: Buffer };\nexport function generateKeyPair(raw?: false): {\n publicKey: Encoded.AccountAddress; secretKey: string;\n};\nexport function generateKeyPair(raw = false): {\n publicKey: Encoded.AccountAddress | Buffer;\n secretKey: string | Buffer;\n} {\n const keyPair = nacl.sign.keyPair();\n const publicBuffer = Buffer.from(keyPair.publicKey);\n const secretBuffer = Buffer.from(keyPair.secretKey);\n\n if (raw) {\n return {\n publicKey: publicBuffer,\n secretKey: secretBuffer,\n };\n }\n return {\n publicKey: encode(publicBuffer, Encoding.AccountAddress),\n secretKey: secretBuffer.toString('hex'),\n };\n}\n\n// SIGNATURES\n\n/**\n * Generate signature\n * @param data - Data to sign\n * @param privateKey - Key to sign with\n * @returns Signature\n */\nexport function sign(data: string | Uint8Array, privateKey: string | Uint8Array): Uint8Array {\n return nacl.sign.detached(Buffer.from(data), Buffer.from(privateKey));\n}\n\n/**\n * Verify that signature was signed by public key\n * @param data - Data to verify\n * @param signature - Signature to verify\n * @param publicKey - Key to verify against\n * @returns Valid?\n */\nexport function verify(\n data: Uint8Array,\n signature: Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey;\n return nacl.sign.detached.verify(data, signature, publicKeyBuffer);\n}\n\nexport function messageToHash(message: string): Buffer {\n const p = Buffer.from('aeternity Signed Message:\\n', 'utf8');\n const msg = Buffer.from(message, 'utf8');\n return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]));\n}\n\nexport function signMessage(message: string, privateKey: string | Buffer): Uint8Array {\n return sign(messageToHash(message), privateKey);\n}\n\nexport function verifyMessage(\n str: string,\n signature: Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n return verify(messageToHash(str), signature, publicKey);\n}\n\n/**\n * Check key pair for validity\n *\n * Sign a message, and then verifying that signature\n * @param privateKey - Private key to verify\n * @param publicKey - Public key to verify\n * @returns Valid?\n */\nexport function isValidKeypair(\n privateKey: string | Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const message = Buffer.from('TheMessage');\n const signature = sign(message, privateKey);\n return verify(message, signature, publicKey);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"crypto.mjs","names":["nacl","concatBuffers","decode","encode","Encoding","getAddressFromPriv","secret","secretBuffer","from","keys","sign","keyPair","fromSecretKey","publicKey","AccountAddress","isAddressValid","address","prefix","e","genSalt","random","BigUint64Array","randomBytes","buffer","Number","BigInt","MAX_SAFE_INTEGER","encodeUnsigned","value","binary","allocUnsafe","writeUInt32BE","slice","findIndex","i","hash","input","blake2b","undefined","encodeContractAddress","owner","nonce","ContractAddress","generateKeyPairFromSecret","generateKeyPair","raw","publicBuffer","secretKey","toString","data","privateKey","detached","verify","signature","messageToHash","message","p","msg","varuintEncode","length","signMessage","verifyMessage","isValidKeypair","publicKeyBuffer"],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\nimport nacl, { SignKeyPair } from 'tweetnacl';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport { blake2b } from 'blakejs/blake2b.js';\nimport { encode as varuintEncode } from 'varuint-bitcoin';\n\nimport { concatBuffers } from './other';\nimport {\n decode, encode, Encoded, Encoding,\n} from './encoder';\n\n/**\n * Generate address from secret key\n * @param secret - Private key as hex string\n * @returns Public key encoded as address\n */\nexport function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress {\n const secretBuffer = typeof secret === 'string' ? Buffer.from(secret, 'hex') : secret;\n const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);\n return encode(keys.publicKey, Encoding.AccountAddress);\n}\n\n/**\n * Check if address is valid\n * @param address - Address\n * @param prefix - Transaction prefix. Default: 'ak'\n * @returns is valid\n */\nexport function isAddressValid(\n address: string,\n prefix: Encoding = Encoding.AccountAddress,\n): boolean {\n try {\n decode(address as Encoded.Generic<typeof prefix>);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n */\nexport function genSalt(): number {\n const [random] = new BigUint64Array(nacl.randomBytes(8).buffer);\n return Number(random % BigInt(Number.MAX_SAFE_INTEGER));\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n */\nexport function encodeUnsigned(value: number): Buffer {\n const binary = Buffer.allocUnsafe(4);\n binary.writeUInt32BE(value);\n return binary.slice(binary.findIndex((i) => i !== 0));\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function hash(input: string | Uint8Array): Buffer {\n return Buffer.from(blake2b(input, undefined, 32)); // 256 bits\n}\n\n// Todo Duplicated in tx builder. remove\n/**\n * Compute contract address\n * @category contract\n * @param owner - Address of contract owner\n * @param nonce - Round when contract was created\n * @returns Contract address\n */\nexport function encodeContractAddress(\n owner: Encoded.AccountAddress,\n nonce: number,\n): Encoded.ContractAddress {\n const publicKey = decode(owner);\n const binary = concatBuffers([publicKey, encodeUnsigned(nonce)]);\n return encode(hash(binary), Encoding.ContractAddress);\n}\n\n// KEY-PAIR HELPERS\n\n/**\n * Generate keyPair from secret key\n * @param secret - secret key\n * @returns Object with Private(privateKey) and Public(publicKey) keys\n */\nexport function generateKeyPairFromSecret(secret: Uint8Array): SignKeyPair {\n return nacl.sign.keyPair.fromSecretKey(secret);\n}\n\n/**\n * Generate a random ED25519 keypair\n * @param raw - Whether to return raw (binary) keys\n * @returns Key pair\n */\nexport function generateKeyPair(raw: true): { publicKey: Buffer; secretKey: Buffer };\nexport function generateKeyPair(raw?: false): {\n publicKey: Encoded.AccountAddress; secretKey: string;\n};\nexport function generateKeyPair(raw = false): {\n publicKey: Encoded.AccountAddress | Buffer;\n secretKey: string | Buffer;\n} {\n const keyPair = nacl.sign.keyPair();\n const publicBuffer = Buffer.from(keyPair.publicKey);\n const secretBuffer = Buffer.from(keyPair.secretKey);\n\n if (raw) {\n return {\n publicKey: publicBuffer,\n secretKey: secretBuffer,\n };\n }\n return {\n publicKey: encode(publicBuffer, Encoding.AccountAddress),\n secretKey: secretBuffer.toString('hex'),\n };\n}\n\n// SIGNATURES\n\n/**\n * Generate signature\n * @param data - Data to sign\n * @param privateKey - Key to sign with\n * @returns Signature\n */\nexport function sign(data: string | Uint8Array, privateKey: string | Uint8Array): Uint8Array {\n return nacl.sign.detached(Buffer.from(data), Buffer.from(privateKey));\n}\n\n/**\n * Verify that signature was signed by public key\n * @param data - Data that was signed\n * @param signature - Signature of data\n * @param address - Address to verify against\n * @returns is data was signed by address\n */\nexport function verify(\n data: Uint8Array,\n signature: Uint8Array,\n address: Encoded.AccountAddress,\n): boolean {\n return nacl.sign.detached.verify(data, signature, decode(address));\n}\n\nexport function messageToHash(message: string): Buffer {\n const p = Buffer.from('aeternity Signed Message:\\n', 'utf8');\n const msg = Buffer.from(message, 'utf8');\n return hash(concatBuffers([varuintEncode(p.length), p, varuintEncode(msg.length), msg]));\n}\n\nexport function signMessage(message: string, privateKey: string | Buffer): Uint8Array {\n return sign(messageToHash(message), privateKey);\n}\n\n/**\n * Verify that message was signed by address\n * @param message - Message that was signed\n * @param signature - Signature of message\n * @param address - Address to verify against\n * @returns is data was signed by address\n */\nexport function verifyMessage(\n message: string,\n signature: Uint8Array,\n address: Encoded.AccountAddress,\n): boolean {\n return verify(messageToHash(message), signature, address);\n}\n\n/**\n * Check key pair for validity\n *\n * Sign a message, and then verifying that signature\n * @param privateKey - Private key to verify\n * @param publicKey - Public key to verify as hex string\n * @returns Valid?\n */\nexport function isValidKeypair(\n privateKey: string | Uint8Array,\n publicKey: string | Uint8Array,\n): boolean {\n const message = Buffer.from('TheMessage');\n const signature = sign(message, privateKey);\n const publicKeyBuffer = typeof publicKey === 'string' ? Buffer.from(publicKey, 'hex') : publicKey;\n return verify(message, signature, encode(publicKeyBuffer, Encoding.AccountAddress));\n}\n"],"mappings":"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"}
@@ -31,31 +31,31 @@ export declare enum Encoding {
31
31
  CallStateTree = "cs",
32
32
  Bytearray = "ba"
33
33
  }
34
- export declare type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;
35
- export declare type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;
36
- export declare type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;
37
- export declare type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;
38
- export declare type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;
39
- export declare type Channel = `${Encoding.Channel}_${string}`;
40
- export declare type ContractAddress = `${Encoding.ContractAddress}_${string}`;
41
- export declare type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;
42
- export declare type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;
43
- export declare type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;
44
- export declare type Transaction = `${Encoding.Transaction}_${string}`;
45
- export declare type TxHash = `${Encoding.TxHash}_${string}`;
46
- export declare type OracleAddress = `${Encoding.OracleAddress}_${string}`;
47
- export declare type OracleQuery = `${Encoding.OracleQuery}_${string}`;
48
- export declare type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;
49
- export declare type OracleResponse = `${Encoding.OracleResponse}_${string}`;
50
- export declare type AccountAddress = `${Encoding.AccountAddress}_${string}`;
51
- export declare type Signature = `${Encoding.Signature}_${string}`;
52
- export declare type Commitment = `${Encoding.Commitment}_${string}`;
53
- export declare type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;
54
- export declare type Name = `${Encoding.Name}_${string}`;
55
- export declare type State = `${Encoding.State}_${string}`;
56
- export declare type Poi = `${Encoding.Poi}_${string}`;
57
- export declare type StateTrees = `${Encoding.StateTrees}_${string}`;
58
- export declare type CallStateTree = `${Encoding.CallStateTree}_${string}`;
59
- export declare type Bytearray = `${Encoding.Bytearray}_${string}`;
60
- export declare type Generic<Type extends Encoding> = `${Type}_${string}`;
61
- export declare type Any = `${Encoding}_${string}`;
34
+ export type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;
35
+ export type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;
36
+ export type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;
37
+ export type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;
38
+ export type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;
39
+ export type Channel = `${Encoding.Channel}_${string}`;
40
+ export type ContractAddress = `${Encoding.ContractAddress}_${string}`;
41
+ export type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;
42
+ export type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;
43
+ export type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;
44
+ export type Transaction = `${Encoding.Transaction}_${string}`;
45
+ export type TxHash = `${Encoding.TxHash}_${string}`;
46
+ export type OracleAddress = `${Encoding.OracleAddress}_${string}`;
47
+ export type OracleQuery = `${Encoding.OracleQuery}_${string}`;
48
+ export type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;
49
+ export type OracleResponse = `${Encoding.OracleResponse}_${string}`;
50
+ export type AccountAddress = `${Encoding.AccountAddress}_${string}`;
51
+ export type Signature = `${Encoding.Signature}_${string}`;
52
+ export type Commitment = `${Encoding.Commitment}_${string}`;
53
+ export type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;
54
+ export type Name = `${Encoding.Name}_${string}`;
55
+ export type State = `${Encoding.State}_${string}`;
56
+ export type Poi = `${Encoding.Poi}_${string}`;
57
+ export type StateTrees = `${Encoding.StateTrees}_${string}`;
58
+ export type CallStateTree = `${Encoding.CallStateTree}_${string}`;
59
+ export type Bytearray = `${Encoding.Bytearray}_${string}`;
60
+ export type Generic<Type extends Encoding> = `${Type}_${string}`;
61
+ export type Any = `${Encoding}_${string}`;
@@ -4,7 +4,6 @@
4
4
  * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}
5
5
  */
6
6
  export let Encoding;
7
-
8
7
  (function (Encoding) {
9
8
  Encoding["KeyBlockHash"] = "kh";
10
9
  Encoding["MicroBlockHash"] = "mh";
@@ -1 +1 @@
1
- {"version":3,"file":"encoder-types.mjs","names":["Encoding"],"sources":["../../src/utils/encoder-types.ts"],"sourcesContent":["/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}\n */\nexport enum Encoding {\n KeyBlockHash = 'kh',\n MicroBlockHash = 'mh',\n BlockPofHash = 'bf',\n BlockTxHash = 'bx',\n BlockStateHash = 'bs',\n Channel = 'ch',\n ContractAddress = 'ct',\n ContractBytearray = 'cb',\n ContractStoreKey = 'ck',\n ContractStoreValue = 'cv',\n Transaction = 'tx',\n TxHash = 'th',\n OracleAddress = 'ok',\n OracleQuery = 'ov',\n OracleQueryId = 'oq',\n OracleResponse = 'or',\n AccountAddress = 'ak',\n Signature = 'sg',\n Commitment = 'cm',\n PeerPubkey = 'pp',\n Name = 'nm',\n State = 'st',\n Poi = 'pi',\n StateTrees = 'ss',\n CallStateTree = 'cs',\n Bytearray = 'ba',\n}\n\nexport type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;\nexport type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;\nexport type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;\nexport type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;\nexport type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;\nexport type Channel = `${Encoding.Channel}_${string}`;\nexport type ContractAddress = `${Encoding.ContractAddress}_${string}`;\nexport type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;\nexport type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;\nexport type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;\nexport type Transaction = `${Encoding.Transaction}_${string}`;\nexport type TxHash = `${Encoding.TxHash}_${string}`;\nexport type OracleAddress = `${Encoding.OracleAddress}_${string}`;\nexport type OracleQuery = `${Encoding.OracleQuery}_${string}`;\nexport type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;\nexport type OracleResponse = `${Encoding.OracleResponse}_${string}`;\nexport type AccountAddress = `${Encoding.AccountAddress}_${string}`;\nexport type Signature = `${Encoding.Signature}_${string}`;\nexport type Commitment = `${Encoding.Commitment}_${string}`;\nexport type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;\nexport type Name = `${Encoding.Name}_${string}`;\nexport type State = `${Encoding.State}_${string}`;\nexport type Poi = `${Encoding.Poi}_${string}`;\nexport type StateTrees = `${Encoding.StateTrees}_${string}`;\nexport type CallStateTree = `${Encoding.CallStateTree}_${string}`;\nexport type Bytearray = `${Encoding.Bytearray}_${string}`;\n\nexport type Generic<Type extends Encoding> = `${Type}_${string}`;\nexport type Any = `${Encoding}_${string}`;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,WAAYA,QAAZ;;WAAYA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,KAAAA,Q"}
1
+ {"version":3,"file":"encoder-types.mjs","names":["Encoding"],"sources":["../../src/utils/encoder-types.ts"],"sourcesContent":["/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}\n */\nexport enum Encoding {\n KeyBlockHash = 'kh',\n MicroBlockHash = 'mh',\n BlockPofHash = 'bf',\n BlockTxHash = 'bx',\n BlockStateHash = 'bs',\n Channel = 'ch',\n ContractAddress = 'ct',\n ContractBytearray = 'cb',\n ContractStoreKey = 'ck',\n ContractStoreValue = 'cv',\n Transaction = 'tx',\n TxHash = 'th',\n OracleAddress = 'ok',\n OracleQuery = 'ov',\n OracleQueryId = 'oq',\n OracleResponse = 'or',\n AccountAddress = 'ak',\n Signature = 'sg',\n Commitment = 'cm',\n PeerPubkey = 'pp',\n Name = 'nm',\n State = 'st',\n Poi = 'pi',\n StateTrees = 'ss',\n CallStateTree = 'cs',\n Bytearray = 'ba',\n}\n\nexport type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;\nexport type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;\nexport type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;\nexport type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;\nexport type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;\nexport type Channel = `${Encoding.Channel}_${string}`;\nexport type ContractAddress = `${Encoding.ContractAddress}_${string}`;\nexport type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;\nexport type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;\nexport type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;\nexport type Transaction = `${Encoding.Transaction}_${string}`;\nexport type TxHash = `${Encoding.TxHash}_${string}`;\nexport type OracleAddress = `${Encoding.OracleAddress}_${string}`;\nexport type OracleQuery = `${Encoding.OracleQuery}_${string}`;\nexport type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;\nexport type OracleResponse = `${Encoding.OracleResponse}_${string}`;\nexport type AccountAddress = `${Encoding.AccountAddress}_${string}`;\nexport type Signature = `${Encoding.Signature}_${string}`;\nexport type Commitment = `${Encoding.Commitment}_${string}`;\nexport type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;\nexport type Name = `${Encoding.Name}_${string}`;\nexport type State = `${Encoding.State}_${string}`;\nexport type Poi = `${Encoding.Poi}_${string}`;\nexport type StateTrees = `${Encoding.StateTrees}_${string}`;\nexport type CallStateTree = `${Encoding.CallStateTree}_${string}`;\nexport type Bytearray = `${Encoding.Bytearray}_${string}`;\n\nexport type Generic<Type extends Encoding> = `${Type}_${string}`;\nexport type Any = `${Encoding}_${string}`;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,WAAYA,QAAQ;AA2BnB,WA3BWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ"}
@@ -6,7 +6,6 @@ export { Encoded, Encoding };
6
6
  * Calculate SHA256 hash of `input`
7
7
  * @param input - Data to hash
8
8
  * @returns Hash
9
- * @deprecated use `SubtleCrypto.digest` or `sha.js` package instead
10
9
  */
11
10
  export declare function sha256hash(input: Uint8Array | string): Buffer;
12
11
  /**
@@ -2,9 +2,9 @@ import _buffer from "buffer";
2
2
  const {
3
3
  Buffer: _Buffer
4
4
  } = _buffer;
5
- import _bs from 'bs58'; // js extension is required for mjs build, not importing the whole package to reduce bundle size
5
+ import _bs from 'bs58';
6
+ // js extension is required for mjs build, not importing the whole package to reduce bundle size
6
7
  // eslint-disable-next-line import/extensions
7
-
8
8
  const {
9
9
  encode: bs58Encode,
10
10
  decode: bs58Decode
@@ -15,26 +15,25 @@ import { concatBuffers, isKeyOfObject } from "./other.mjs";
15
15
  import * as Encoded from "./encoder-types.mjs";
16
16
  import { Encoding } from "./encoder-types.mjs";
17
17
  export { Encoded, Encoding };
18
+
18
19
  /**
19
20
  * Calculate SHA256 hash of `input`
20
21
  * @param input - Data to hash
21
22
  * @returns Hash
22
- * @deprecated use `SubtleCrypto.digest` or `sha.js` package instead
23
23
  */
24
-
25
24
  export function sha256hash(input) {
26
25
  return new Sha256().update(input).digest();
27
26
  }
27
+
28
28
  /**
29
29
  * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L177-L202}
30
30
  */
31
-
32
31
  const base64Types = [Encoding.ContractBytearray, Encoding.ContractStoreKey, Encoding.ContractStoreValue, Encoding.Transaction, Encoding.OracleQuery, Encoding.OracleResponse, Encoding.State, Encoding.Poi, Encoding.StateTrees, Encoding.CallStateTree, Encoding.Bytearray];
33
32
  const base58Types = [Encoding.KeyBlockHash, Encoding.MicroBlockHash, Encoding.BlockPofHash, Encoding.BlockTxHash, Encoding.BlockStateHash, Encoding.Channel, Encoding.ContractAddress, Encoding.TxHash, Encoding.OracleAddress, Encoding.OracleQueryId, Encoding.AccountAddress, Encoding.Signature, Encoding.Commitment, Encoding.PeerPubkey, Encoding.Name];
33
+
34
34
  /**
35
35
  * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L261-L286}
36
36
  */
37
-
38
37
  const byteSizeForType = {
39
38
  [Encoding.KeyBlockHash]: 32,
40
39
  [Encoding.MicroBlockHash]: 32,
@@ -52,24 +51,19 @@ const byteSizeForType = {
52
51
  [Encoding.PeerPubkey]: 32,
53
52
  [Encoding.State]: 32
54
53
  };
55
-
56
54
  function ensureValidLength(data, type) {
57
55
  if (!isKeyOfObject(type, byteSizeForType)) return;
58
56
  const reqLen = byteSizeForType[type];
59
57
  if (reqLen == null || data.length === reqLen) return;
60
58
  throw new PayloadLengthError(`Payload should be ${reqLen} bytes, got ${data.length} instead`);
61
59
  }
62
-
63
60
  const getChecksum = payload => sha256hash(sha256hash(payload)).slice(0, 4);
64
-
65
61
  const addChecksum = payload => concatBuffers([payload, getChecksum(payload)]);
66
-
67
62
  function getPayload(buffer) {
68
63
  const payload = buffer.slice(0, -4);
69
64
  if (!getChecksum(payload).equals(buffer.slice(-4))) throw new InvalidChecksumError();
70
65
  return payload;
71
66
  }
72
-
73
67
  const base64 = {
74
68
  encode: buffer => addChecksum(buffer).toString('base64'),
75
69
  decode: string => getPayload(_Buffer.from(string, 'base64'))
@@ -78,7 +72,6 @@ const base58 = {
78
72
  encode: buffer => bs58Encode(addChecksum(buffer)),
79
73
  decode: string => getPayload(_Buffer.from(bs58Decode(string)))
80
74
  };
81
-
82
75
  const parseType = maybeType => {
83
76
  const base64Type = base64Types.find(t => t === maybeType);
84
77
  if (base64Type != null) return [base64Type, base64];
@@ -86,14 +79,13 @@ const parseType = maybeType => {
86
79
  if (base58Type != null) return [base58Type, base58];
87
80
  throw new ArgumentError('prefix', `one of ${[...base58Types, ...base64Types].join(', ')}`, maybeType);
88
81
  };
82
+
89
83
  /**
90
84
  * Decode data using the default encoding/decoding algorithm
91
85
  * @param data - An Base58/64check encoded and prefixed string
92
86
  * (ex tx_..., sg_..., ak_....)
93
87
  * @returns Decoded data
94
88
  */
95
-
96
-
97
89
  export function decode(data) {
98
90
  const [prefix, encodedPayload, extra] = data.split('_');
99
91
  if (encodedPayload == null) throw new DecodeError(`Encoded string missing payload: ${data}`);
@@ -103,13 +95,13 @@ export function decode(data) {
103
95
  ensureValidLength(payload, type);
104
96
  return payload;
105
97
  }
98
+
106
99
  /**
107
100
  * Encode data using the default encoding/decoding algorithm
108
101
  * @param data - An decoded data
109
102
  * @param type - Prefix of Transaction
110
103
  * @returns Encoded string Base58check or Base64check data
111
104
  */
112
-
113
105
  export function encode(data, type) {
114
106
  const [, encoder] = parseType(type);
115
107
  ensureValidLength(data, type);
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.mjs","names":["Sha256","DecodeError","ArgumentError","InvalidChecksumError","PayloadLengthError","concatBuffers","isKeyOfObject","Encoded","Encoding","sha256hash","input","update","digest","base64Types","ContractBytearray","ContractStoreKey","ContractStoreValue","Transaction","OracleQuery","OracleResponse","State","Poi","StateTrees","CallStateTree","Bytearray","base58Types","KeyBlockHash","MicroBlockHash","BlockPofHash","BlockTxHash","BlockStateHash","Channel","ContractAddress","TxHash","OracleAddress","OracleQueryId","AccountAddress","Signature","Commitment","PeerPubkey","Name","byteSizeForType","ensureValidLength","data","type","reqLen","length","getChecksum","payload","slice","addChecksum","getPayload","buffer","equals","base64","encode","toString","decode","string","from","base58","bs58Encode","bs58Decode","parseType","maybeType","base64Type","find","t","base58Type","join","prefix","encodedPayload","extra","split","encoder"],"sources":["../../src/utils/encoder.ts"],"sourcesContent":["import { encode as bs58Encode, decode as bs58Decode } from 'bs58';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport Sha256 from 'sha.js/sha256.js';\nimport {\n DecodeError,\n ArgumentError,\n InvalidChecksumError,\n PayloadLengthError,\n} from './errors';\nimport { concatBuffers, isKeyOfObject } from './other';\nimport * as Encoded from './encoder-types';\nimport { Encoding } from './encoder-types';\n\nexport { Encoded, Encoding };\n\n/**\n * Calculate SHA256 hash of `input`\n * @param input - Data to hash\n * @returns Hash\n * @deprecated use `SubtleCrypto.digest` or `sha.js` package instead\n */\nexport function sha256hash(input: Uint8Array | string): Buffer {\n return new Sha256().update(input).digest();\n}\n\n/**\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L177-L202}\n */\nconst base64Types = [\n Encoding.ContractBytearray,\n Encoding.ContractStoreKey,\n Encoding.ContractStoreValue,\n Encoding.Transaction,\n Encoding.OracleQuery,\n Encoding.OracleResponse,\n Encoding.State,\n Encoding.Poi,\n Encoding.StateTrees,\n Encoding.CallStateTree,\n Encoding.Bytearray,\n] as const;\nconst base58Types = [\n Encoding.KeyBlockHash,\n Encoding.MicroBlockHash,\n Encoding.BlockPofHash,\n Encoding.BlockTxHash,\n Encoding.BlockStateHash,\n Encoding.Channel,\n Encoding.ContractAddress,\n Encoding.TxHash,\n Encoding.OracleAddress,\n Encoding.OracleQueryId,\n Encoding.AccountAddress,\n Encoding.Signature,\n Encoding.Commitment,\n Encoding.PeerPubkey,\n Encoding.Name,\n] as const;\n\n/**\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L261-L286}\n */\nconst byteSizeForType = {\n [Encoding.KeyBlockHash]: 32,\n [Encoding.MicroBlockHash]: 32,\n [Encoding.BlockPofHash]: 32,\n [Encoding.BlockTxHash]: 32,\n [Encoding.BlockStateHash]: 32,\n [Encoding.Channel]: 32,\n [Encoding.ContractAddress]: 32,\n [Encoding.TxHash]: 32,\n [Encoding.OracleAddress]: 32,\n [Encoding.OracleQueryId]: 32,\n [Encoding.AccountAddress]: 32,\n [Encoding.Signature]: 64,\n [Encoding.Commitment]: 32,\n [Encoding.PeerPubkey]: 32,\n [Encoding.State]: 32,\n} as const;\n\nfunction ensureValidLength(data: Uint8Array, type: Encoding): void {\n if (!isKeyOfObject(type, byteSizeForType)) return;\n const reqLen = byteSizeForType[type];\n if (reqLen == null || data.length === reqLen) return;\n throw new PayloadLengthError(`Payload should be ${reqLen} bytes, got ${data.length} instead`);\n}\n\nconst getChecksum = (payload: Uint8Array): Buffer => sha256hash(sha256hash(payload)).slice(0, 4);\n\nconst addChecksum = (payload: Uint8Array): Buffer => concatBuffers([payload, getChecksum(payload)]);\n\nfunction getPayload(buffer: Buffer): Buffer {\n const payload = buffer.slice(0, -4);\n if (!getChecksum(payload).equals(buffer.slice(-4))) throw new InvalidChecksumError();\n return payload;\n}\n\nconst base64 = {\n encode: (buffer: Uint8Array) => addChecksum(buffer).toString('base64'),\n decode: (string: string) => getPayload(Buffer.from(string, 'base64')),\n};\n\nconst base58 = {\n encode: (buffer: Uint8Array) => bs58Encode(addChecksum(buffer)),\n decode: (string: string) => getPayload(Buffer.from(bs58Decode(string))),\n};\n\nconst parseType = (maybeType: unknown): [Encoding, typeof base64] => {\n const base64Type = base64Types.find((t) => t === maybeType);\n if (base64Type != null) return [base64Type, base64];\n const base58Type = base58Types.find((t) => t === maybeType);\n if (base58Type != null) return [base58Type, base58];\n throw new ArgumentError('prefix', `one of ${[...base58Types, ...base64Types].join(', ')}`, maybeType);\n};\n\n/**\n * Decode data using the default encoding/decoding algorithm\n * @param data - An Base58/64check encoded and prefixed string\n * (ex tx_..., sg_..., ak_....)\n * @returns Decoded data\n */\nexport function decode(data: Encoded.Any): Buffer {\n const [prefix, encodedPayload, extra] = data.split('_');\n if (encodedPayload == null) throw new DecodeError(`Encoded string missing payload: ${data}`);\n if (extra != null) throw new DecodeError(`Encoded string have extra parts: ${data}`);\n const [type, encoder] = parseType(prefix);\n const payload = encoder.decode(encodedPayload);\n ensureValidLength(payload, type);\n return payload;\n}\n\n/**\n * Encode data using the default encoding/decoding algorithm\n * @param data - An decoded data\n * @param type - Prefix of Transaction\n * @returns Encoded string Base58check or Base64check data\n */\nexport function encode<Type extends Encoding>(\n data: Uint8Array,\n type: Type,\n): Encoded.Generic<Type> {\n const [, encoder] = parseType(type);\n ensureValidLength(data, type);\n return `${type}_${encoder.encode(data)}`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"encoder.mjs","names":["Sha256","DecodeError","ArgumentError","InvalidChecksumError","PayloadLengthError","concatBuffers","isKeyOfObject","Encoded","Encoding","sha256hash","input","update","digest","base64Types","ContractBytearray","ContractStoreKey","ContractStoreValue","Transaction","OracleQuery","OracleResponse","State","Poi","StateTrees","CallStateTree","Bytearray","base58Types","KeyBlockHash","MicroBlockHash","BlockPofHash","BlockTxHash","BlockStateHash","Channel","ContractAddress","TxHash","OracleAddress","OracleQueryId","AccountAddress","Signature","Commitment","PeerPubkey","Name","byteSizeForType","ensureValidLength","data","type","reqLen","length","getChecksum","payload","slice","addChecksum","getPayload","buffer","equals","base64","encode","toString","decode","string","from","base58","bs58Encode","bs58Decode","parseType","maybeType","base64Type","find","t","base58Type","join","prefix","encodedPayload","extra","split","encoder"],"sources":["../../src/utils/encoder.ts"],"sourcesContent":["import { encode as bs58Encode, decode as bs58Decode } from 'bs58';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport Sha256 from 'sha.js/sha256.js';\nimport {\n DecodeError,\n ArgumentError,\n InvalidChecksumError,\n PayloadLengthError,\n} from './errors';\nimport { concatBuffers, isKeyOfObject } from './other';\nimport * as Encoded from './encoder-types';\nimport { Encoding } from './encoder-types';\n\nexport { Encoded, Encoding };\n\n/**\n * Calculate SHA256 hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function sha256hash(input: Uint8Array | string): Buffer {\n return new Sha256().update(input).digest();\n}\n\n/**\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L177-L202}\n */\nconst base64Types = [\n Encoding.ContractBytearray,\n Encoding.ContractStoreKey,\n Encoding.ContractStoreValue,\n Encoding.Transaction,\n Encoding.OracleQuery,\n Encoding.OracleResponse,\n Encoding.State,\n Encoding.Poi,\n Encoding.StateTrees,\n Encoding.CallStateTree,\n Encoding.Bytearray,\n] as const;\nconst base58Types = [\n Encoding.KeyBlockHash,\n Encoding.MicroBlockHash,\n Encoding.BlockPofHash,\n Encoding.BlockTxHash,\n Encoding.BlockStateHash,\n Encoding.Channel,\n Encoding.ContractAddress,\n Encoding.TxHash,\n Encoding.OracleAddress,\n Encoding.OracleQueryId,\n Encoding.AccountAddress,\n Encoding.Signature,\n Encoding.Commitment,\n Encoding.PeerPubkey,\n Encoding.Name,\n] as const;\n\n/**\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L261-L286}\n */\nconst byteSizeForType = {\n [Encoding.KeyBlockHash]: 32,\n [Encoding.MicroBlockHash]: 32,\n [Encoding.BlockPofHash]: 32,\n [Encoding.BlockTxHash]: 32,\n [Encoding.BlockStateHash]: 32,\n [Encoding.Channel]: 32,\n [Encoding.ContractAddress]: 32,\n [Encoding.TxHash]: 32,\n [Encoding.OracleAddress]: 32,\n [Encoding.OracleQueryId]: 32,\n [Encoding.AccountAddress]: 32,\n [Encoding.Signature]: 64,\n [Encoding.Commitment]: 32,\n [Encoding.PeerPubkey]: 32,\n [Encoding.State]: 32,\n} as const;\n\nfunction ensureValidLength(data: Uint8Array, type: Encoding): void {\n if (!isKeyOfObject(type, byteSizeForType)) return;\n const reqLen = byteSizeForType[type];\n if (reqLen == null || data.length === reqLen) return;\n throw new PayloadLengthError(`Payload should be ${reqLen} bytes, got ${data.length} instead`);\n}\n\nconst getChecksum = (payload: Uint8Array): Buffer => sha256hash(sha256hash(payload)).slice(0, 4);\n\nconst addChecksum = (payload: Uint8Array): Buffer => concatBuffers([payload, getChecksum(payload)]);\n\nfunction getPayload(buffer: Buffer): Buffer {\n const payload = buffer.slice(0, -4);\n if (!getChecksum(payload).equals(buffer.slice(-4))) throw new InvalidChecksumError();\n return payload;\n}\n\nconst base64 = {\n encode: (buffer: Uint8Array) => addChecksum(buffer).toString('base64'),\n decode: (string: string) => getPayload(Buffer.from(string, 'base64')),\n};\n\nconst base58 = {\n encode: (buffer: Uint8Array) => bs58Encode(addChecksum(buffer)),\n decode: (string: string) => getPayload(Buffer.from(bs58Decode(string))),\n};\n\nconst parseType = (maybeType: unknown): [Encoding, typeof base64] => {\n const base64Type = base64Types.find((t) => t === maybeType);\n if (base64Type != null) return [base64Type, base64];\n const base58Type = base58Types.find((t) => t === maybeType);\n if (base58Type != null) return [base58Type, base58];\n throw new ArgumentError('prefix', `one of ${[...base58Types, ...base64Types].join(', ')}`, maybeType);\n};\n\n/**\n * Decode data using the default encoding/decoding algorithm\n * @param data - An Base58/64check encoded and prefixed string\n * (ex tx_..., sg_..., ak_....)\n * @returns Decoded data\n */\nexport function decode(data: Encoded.Any): Buffer {\n const [prefix, encodedPayload, extra] = data.split('_');\n if (encodedPayload == null) throw new DecodeError(`Encoded string missing payload: ${data}`);\n if (extra != null) throw new DecodeError(`Encoded string have extra parts: ${data}`);\n const [type, encoder] = parseType(prefix);\n const payload = encoder.decode(encodedPayload);\n ensureValidLength(payload, type);\n return payload;\n}\n\n/**\n * Encode data using the default encoding/decoding algorithm\n * @param data - An decoded data\n * @param type - Prefix of Transaction\n * @returns Encoded string Base58check or Base64check data\n */\nexport function encode<Type extends Encoding>(\n data: Uint8Array,\n type: Type,\n): Encoded.Generic<Type> {\n const [, encoder] = parseType(type);\n ensureValidLength(data, type);\n return `${type}_${encoder.encode(data)}`;\n}\n"],"mappings":"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"}
@@ -156,12 +156,6 @@ export declare class InternalError extends BaseError {
156
156
  export declare class UnexpectedTsError extends InternalError {
157
157
  constructor(message?: string);
158
158
  }
159
- /**
160
- * @category exception
161
- */
162
- export declare class InvalidKeypairError extends AccountError {
163
- constructor(message: string);
164
- }
165
159
  /**
166
160
  * @category exception
167
161
  */
@@ -240,6 +234,18 @@ export declare class ChannelPingTimedOutError extends ChannelError {
240
234
  export declare class UnexpectedChannelMessageError extends ChannelError {
241
235
  constructor(message: string);
242
236
  }
237
+ /**
238
+ * @category exception
239
+ */
240
+ export declare class ChannelIncomingMessageError extends ChannelError {
241
+ handlerError: BaseError;
242
+ incomingMessage: {
243
+ [key: string]: any;
244
+ };
245
+ constructor(handlerError: BaseError, incomingMessage: {
246
+ [key: string]: any;
247
+ });
248
+ }
243
249
  /**
244
250
  * @category exception
245
251
  */