@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-alpha.1

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 (322) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +4206 -1127
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdkBase.d.ts +3 -3
  9. package/es/AeSdkBase.mjs +4 -0
  10. package/es/AeSdkBase.mjs.map +1 -1
  11. package/es/AeSdkMethods.d.ts +3 -4
  12. package/es/AeSdkMethods.mjs.map +1 -1
  13. package/es/Node.d.ts +4 -3
  14. package/es/Node.mjs +1 -1
  15. package/es/Node.mjs.map +1 -1
  16. package/es/account/Base.d.ts +2 -2
  17. package/es/account/Base.mjs.map +1 -1
  18. package/es/account/Generalized.mjs +5 -3
  19. package/es/account/Generalized.mjs.map +1 -1
  20. package/es/account/Ledger.mjs +2 -1
  21. package/es/account/Ledger.mjs.map +1 -1
  22. package/es/account/Memory.mjs +2 -1
  23. package/es/account/Memory.mjs.map +1 -1
  24. package/es/aens.d.ts +1 -1
  25. package/es/aens.mjs +5 -1
  26. package/es/aens.mjs.map +1 -1
  27. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  28. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -4
  29. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  30. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +1 -1
  31. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  32. package/es/chain.d.ts +9 -1
  33. package/es/chain.mjs +4 -1
  34. package/es/chain.mjs.map +1 -1
  35. package/es/channel/Base.d.ts +6 -1
  36. package/es/channel/Base.mjs +9 -6
  37. package/es/channel/Base.mjs.map +1 -1
  38. package/es/channel/Contract.d.ts +8 -7
  39. package/es/channel/Contract.mjs +1 -1
  40. package/es/channel/Contract.mjs.map +1 -1
  41. package/es/channel/Spend.d.ts +3 -1
  42. package/es/channel/Spend.mjs +4 -2
  43. package/es/channel/Spend.mjs.map +1 -1
  44. package/es/channel/handlers.mjs +11 -9
  45. package/es/channel/handlers.mjs.map +1 -1
  46. package/es/channel/internal.mjs +3 -1
  47. package/es/channel/internal.mjs.map +1 -1
  48. package/es/contract/Contract.d.ts +21 -46
  49. package/es/contract/Contract.mjs +69 -52
  50. package/es/contract/Contract.mjs.map +1 -1
  51. package/es/contract/compiler/Base.d.ts +81 -0
  52. package/es/contract/compiler/Base.mjs +5 -0
  53. package/es/contract/compiler/Base.mjs.map +1 -0
  54. package/es/contract/compiler/Cli.d.ts +23 -0
  55. package/es/contract/compiler/Cli.mjs +155 -0
  56. package/es/contract/compiler/Cli.mjs.map +1 -0
  57. package/es/contract/compiler/Http.d.ts +32 -0
  58. package/es/contract/{CompilerHttp.mjs → compiler/Http.mjs} +64 -9
  59. package/es/contract/compiler/Http.mjs.map +1 -0
  60. package/es/contract/compiler/HttpNode.d.ts +17 -0
  61. package/es/contract/compiler/HttpNode.mjs +26 -0
  62. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  63. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  64. package/es/contract/compiler/getFileSystem.mjs +40 -0
  65. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  66. package/es/contract/ga.d.ts +5 -4
  67. package/es/contract/ga.mjs +11 -2
  68. package/es/contract/ga.mjs.map +1 -1
  69. package/es/index-browser.d.ts +39 -0
  70. package/es/index-browser.mjs +55 -0
  71. package/es/index-browser.mjs.map +1 -0
  72. package/es/index.d.ts +4 -38
  73. package/es/index.mjs +4 -53
  74. package/es/index.mjs.map +1 -1
  75. package/es/oracle.mjs +1 -1
  76. package/es/oracle.mjs.map +1 -1
  77. package/es/spend.mjs +1 -3
  78. package/es/spend.mjs.map +1 -1
  79. package/es/tx/builder/constants.d.ts +28 -1
  80. package/es/tx/builder/constants.mjs +32 -3
  81. package/es/tx/builder/constants.mjs.map +1 -1
  82. package/es/tx/builder/field-types/abi-version.d.ts +10 -0
  83. package/es/tx/builder/field-types/abi-version.mjs +20 -0
  84. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  85. package/es/tx/builder/field-types/address.d.ts +5 -6
  86. package/es/tx/builder/field-types/address.mjs +17 -8
  87. package/es/tx/builder/field-types/address.mjs.map +1 -1
  88. package/es/tx/builder/field-types/array.d.ts +7 -0
  89. package/es/tx/builder/field-types/array.mjs +11 -0
  90. package/es/tx/builder/field-types/array.mjs.map +1 -0
  91. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  92. package/es/tx/builder/field-types/boolean.mjs +13 -0
  93. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  94. package/es/tx/builder/field-types/coin-amount.d.ts +1 -1
  95. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  96. package/es/tx/builder/field-types/ct-version.d.ts +30 -0
  97. package/es/tx/builder/field-types/ct-version.mjs +48 -0
  98. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  99. package/es/tx/builder/field-types/deposit.d.ts +1 -1
  100. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  101. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  102. package/es/tx/builder/field-types/encoded.mjs +21 -0
  103. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  104. package/es/tx/builder/field-types/entry.d.ts +11 -0
  105. package/es/tx/builder/field-types/entry.mjs +31 -0
  106. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  107. package/es/tx/builder/field-types/enumeration.d.ts +5 -3
  108. package/es/tx/builder/field-types/enumeration.mjs +11 -2
  109. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  110. package/es/tx/builder/field-types/fee.d.ts +10 -7
  111. package/es/tx/builder/field-types/fee.mjs +24 -20
  112. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  113. package/es/tx/builder/field-types/gas-limit.d.ts +5 -2
  114. package/es/tx/builder/field-types/gas-limit.mjs +9 -6
  115. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  116. package/es/tx/builder/field-types/gas-price.d.ts +1 -1
  117. package/es/tx/builder/field-types/index.d.ts +66 -28
  118. package/es/tx/builder/field-types/index.mjs +30 -12
  119. package/es/tx/builder/field-types/index.mjs.map +1 -1
  120. package/es/tx/builder/field-types/mptree.d.ts +37 -0
  121. package/es/tx/builder/field-types/mptree.mjs +268 -0
  122. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  123. package/es/tx/builder/field-types/name-fee.d.ts +1 -2
  124. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  125. package/es/tx/builder/field-types/name-id.mjs +2 -1
  126. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  127. package/es/tx/builder/field-types/pointers.mjs +2 -2
  128. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  129. package/es/tx/builder/field-types/raw.d.ts +6 -0
  130. package/es/tx/builder/field-types/raw.mjs +13 -0
  131. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  132. package/es/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  133. package/es/tx/builder/field-types/short-u-int-const.mjs +16 -0
  134. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  135. package/es/tx/builder/field-types/string.d.ts +6 -0
  136. package/es/tx/builder/field-types/string.mjs +10 -0
  137. package/es/tx/builder/field-types/string.mjs.map +1 -0
  138. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  139. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  140. package/es/tx/builder/index.d.ts +11 -29
  141. package/es/tx/builder/index.mjs +50 -211
  142. package/es/tx/builder/index.mjs.map +1 -1
  143. package/es/tx/builder/schema.d.ts +2111 -571
  144. package/es/tx/builder/schema.mjs +57 -125
  145. package/es/tx/builder/schema.mjs.map +1 -1
  146. package/es/tx/index.d.ts +5 -20
  147. package/es/tx/index.mjs +31 -88
  148. package/es/tx/index.mjs.map +1 -1
  149. package/es/tx/validator.d.ts +3 -5
  150. package/es/tx/validator.mjs +82 -95
  151. package/es/tx/validator.mjs.map +1 -1
  152. package/es/utils/bytes.mjs +1 -1
  153. package/es/utils/bytes.mjs.map +1 -1
  154. package/es/utils/errors.d.ts +3 -8
  155. package/es/utils/errors.mjs +1 -11
  156. package/es/utils/errors.mjs.map +1 -1
  157. package/es/utils/other.d.ts +1 -1
  158. package/package.json +35 -27
  159. package/src/AeSdkBase.ts +6 -3
  160. package/src/AeSdkMethods.ts +3 -4
  161. package/src/Node.ts +6 -3
  162. package/src/account/Base.ts +2 -2
  163. package/src/account/Generalized.ts +2 -2
  164. package/src/account/Ledger.ts +1 -1
  165. package/src/account/Memory.ts +1 -1
  166. package/src/aens.ts +3 -2
  167. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -7
  168. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  169. package/src/chain.ts +5 -3
  170. package/src/channel/Base.ts +13 -5
  171. package/src/channel/Contract.ts +11 -10
  172. package/src/channel/Spend.ts +7 -2
  173. package/src/channel/handlers.ts +10 -9
  174. package/src/channel/internal.ts +1 -1
  175. package/src/contract/Contract.ts +69 -79
  176. package/src/contract/compiler/Base.ts +94 -0
  177. package/src/contract/compiler/Cli.ts +134 -0
  178. package/src/contract/compiler/Http.ts +124 -0
  179. package/src/contract/compiler/HttpNode.ts +26 -0
  180. package/src/contract/compiler/getFileSystem.ts +42 -0
  181. package/src/contract/ga.ts +9 -6
  182. package/src/index-browser.ts +58 -0
  183. package/src/index.ts +4 -56
  184. package/src/oracle.ts +1 -1
  185. package/src/spend.ts +1 -1
  186. package/src/tx/builder/constants.ts +32 -3
  187. package/src/tx/builder/field-types/abi-version.ts +21 -0
  188. package/src/tx/builder/field-types/address.ts +23 -13
  189. package/src/tx/builder/field-types/array.ts +19 -0
  190. package/src/tx/builder/field-types/boolean.ts +9 -0
  191. package/src/tx/builder/field-types/coin-amount.ts +2 -1
  192. package/src/tx/builder/field-types/ct-version.ts +50 -0
  193. package/src/tx/builder/field-types/deposit.ts +1 -1
  194. package/src/tx/builder/field-types/encoded.ts +27 -0
  195. package/src/tx/builder/field-types/entry.ts +31 -0
  196. package/src/tx/builder/field-types/enumeration.ts +15 -4
  197. package/src/tx/builder/field-types/fee.ts +38 -18
  198. package/src/tx/builder/field-types/gas-limit.ts +12 -7
  199. package/src/tx/builder/field-types/index.ts +46 -17
  200. package/src/tx/builder/field-types/mptree.ts +242 -0
  201. package/src/tx/builder/field-types/name-fee.ts +1 -2
  202. package/src/tx/builder/field-types/name-id.ts +1 -1
  203. package/src/tx/builder/field-types/pointers.ts +2 -2
  204. package/src/tx/builder/field-types/raw.ts +9 -0
  205. package/src/tx/builder/field-types/short-u-int-const.ts +20 -0
  206. package/src/tx/builder/field-types/string.ts +11 -0
  207. package/src/tx/builder/field-types/u-int.ts +1 -3
  208. package/src/tx/builder/index.ts +63 -247
  209. package/src/tx/builder/schema.ts +273 -323
  210. package/src/tx/index.ts +37 -104
  211. package/src/tx/validator.ts +72 -95
  212. package/src/utils/bytes.ts +1 -1
  213. package/src/utils/errors.ts +4 -13
  214. package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
  215. package/types-legacy/ts4.2/AeSdkMethods.d.ts +3 -4
  216. package/types-legacy/ts4.2/Node.d.ts +3 -3
  217. package/types-legacy/ts4.2/account/Base.d.ts +2 -2
  218. package/types-legacy/ts4.2/aens.d.ts +1 -1
  219. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  220. package/types-legacy/ts4.2/chain.d.ts +9 -1
  221. package/types-legacy/ts4.2/channel/Base.d.ts +6 -1
  222. package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
  223. package/types-legacy/ts4.2/channel/Spend.d.ts +3 -1
  224. package/types-legacy/ts4.2/contract/Contract.d.ts +21 -46
  225. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +81 -0
  226. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  227. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  228. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  229. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  230. package/types-legacy/ts4.2/contract/ga.d.ts +5 -4
  231. package/types-legacy/ts4.2/index-browser.d.ts +39 -0
  232. package/types-legacy/ts4.2/index.d.ts +4 -38
  233. package/types-legacy/ts4.2/tx/builder/constants.d.ts +28 -1
  234. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +10 -0
  235. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
  236. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  237. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  238. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +1 -1
  239. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +42 -0
  240. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +1 -1
  241. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  242. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  243. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
  244. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +10 -7
  245. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +5 -2
  246. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +1 -1
  247. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +72 -28
  248. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +43 -0
  249. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -2
  250. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  251. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  252. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  253. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
  254. package/types-legacy/ts4.2/tx/builder/index.d.ts +11 -29
  255. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2380 -668
  256. package/types-legacy/ts4.2/tx/index.d.ts +5 -20
  257. package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
  258. package/types-legacy/ts4.2/utils/errors.d.ts +3 -8
  259. package/types-legacy/ts4.2/utils/other.d.ts +1 -1
  260. package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
  261. package/types-legacy/ts4.5/AeSdkMethods.d.ts +3 -4
  262. package/types-legacy/ts4.5/Node.d.ts +3 -3
  263. package/types-legacy/ts4.5/account/Base.d.ts +2 -2
  264. package/types-legacy/ts4.5/aens.d.ts +1 -1
  265. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  266. package/types-legacy/ts4.5/chain.d.ts +9 -1
  267. package/types-legacy/ts4.5/channel/Base.d.ts +6 -1
  268. package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
  269. package/types-legacy/ts4.5/channel/Spend.d.ts +3 -1
  270. package/types-legacy/ts4.5/contract/Contract.d.ts +21 -46
  271. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +81 -0
  272. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  273. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  274. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  275. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  276. package/types-legacy/ts4.5/contract/ga.d.ts +5 -4
  277. package/types-legacy/ts4.5/index-browser.d.ts +39 -0
  278. package/types-legacy/ts4.5/index.d.ts +4 -38
  279. package/types-legacy/ts4.5/tx/builder/constants.d.ts +28 -1
  280. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +10 -0
  281. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
  282. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  283. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  284. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +1 -1
  285. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +42 -0
  286. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +1 -1
  287. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  288. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  289. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
  290. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +10 -7
  291. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +5 -2
  292. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +1 -1
  293. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +72 -28
  294. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +43 -0
  295. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -2
  296. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  297. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +5 -0
  298. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  299. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
  300. package/types-legacy/ts4.5/tx/builder/index.d.ts +11 -29
  301. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2380 -668
  302. package/types-legacy/ts4.5/tx/index.d.ts +5 -20
  303. package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
  304. package/types-legacy/ts4.5/utils/errors.d.ts +3 -8
  305. package/types-legacy/ts4.5/utils/other.d.ts +1 -1
  306. package/es/contract/CompilerHttp.d.ts +0 -18
  307. package/es/contract/CompilerHttp.mjs.map +0 -1
  308. package/es/tx/builder/field-types/addresses.d.ts +0 -6
  309. package/es/tx/builder/field-types/addresses.mjs +0 -13
  310. package/es/tx/builder/field-types/addresses.mjs.map +0 -1
  311. package/es/utils/mptree.d.ts +0 -26
  312. package/es/utils/mptree.mjs +0 -143
  313. package/es/utils/mptree.mjs.map +0 -1
  314. package/src/contract/CompilerHttp.ts +0 -67
  315. package/src/tx/builder/field-types/addresses.ts +0 -18
  316. package/src/utils/mptree.ts +0 -145
  317. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
  318. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
  319. package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
  320. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
  321. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
  322. package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
package/es/AeSdkBase.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import Node from './Node';
2
2
  import AccountBase from './account/Base';
3
3
  import { Encoded } from './utils/encoder';
4
- import CompilerHttp from './contract/CompilerHttp';
4
+ import CompilerBase from './contract/compiler/Base';
5
5
  import AeSdkMethods, { OnAccount } from './AeSdkMethods';
6
6
  type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & {
7
7
  name: string;
@@ -25,7 +25,7 @@ export default class AeSdkBase extends AeSdkMethods {
25
25
  instance: Node;
26
26
  }>;
27
27
  });
28
- get compilerApi(): CompilerHttp;
28
+ get compilerApi(): CompilerBase;
29
29
  get api(): Node;
30
30
  /**
31
31
  * Add Node
@@ -85,7 +85,7 @@ export default class AeSdkBase extends AeSdkMethods {
85
85
  _getOptions(): {
86
86
  onNode: Node;
87
87
  onAccount: AccountBase;
88
- onCompiler: CompilerHttp;
88
+ onCompiler: CompilerBase;
89
89
  };
90
90
  }
91
91
  export {};
package/es/AeSdkBase.mjs CHANGED
@@ -27,6 +27,10 @@ export default class AeSdkBase extends AeSdkMethods {
27
27
  return this.addNode(name, instance, i === 0);
28
28
  });
29
29
  }
30
+
31
+ // TODO: consider dropping this getter, because:
32
+ // compiler is not intended to be used separately any more (functionality limited to sdk needs)
33
+ // and user creates its instance by himself
30
34
  get compilerApi() {
31
35
  if (this._options.onCompiler == null) {
32
36
  throw new CompilerError('You can\'t use Compiler API. Compiler is not ready!');
@@ -1 +1 @@
1
- {"version":3,"file":"AeSdkBase.mjs","names":["CompilerError","DuplicateNodeError","NodeNotFoundError","AeSdkMethods","getValueOrErrorProxy","AeSdkBase","constructor","nodes","options","Map","forEach","i","name","instance","addNode","compilerApi","_options","onCompiler","api","ensureNodeConnected","pool","get","selectedNodeName","node","select","has","set","selectNode","isNodeConnected","getNodeInfo","getNodesInPool","Promise","all","Array","from","entries","map","addresses","address","_resolveAccount","sign","data","onAccount","signTransaction","tx","networkId","getNetworkId","undefined","signMessage","message","_getOptions","onNode"],"sources":["../src/AeSdkBase.ts"],"sourcesContent":["import Node from './Node';\nimport AccountBase from './account/Base';\nimport { CompilerError, DuplicateNodeError, NodeNotFoundError } from './utils/errors';\nimport { Encoded } from './utils/encoder';\nimport CompilerHttp from './contract/CompilerHttp';\nimport AeSdkMethods, { OnAccount, getValueOrErrorProxy } from './AeSdkMethods';\n\ntype NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string };\n\n/**\n * Basic AeSdk class implements:\n * - node selector,\n * - integrated compiler support,\n * - wrappers of account methods mapped to the current account.\n */\nexport default class AeSdkBase extends AeSdkMethods {\n pool: Map<string, Node> = new Map();\n\n selectedNodeName?: string;\n\n /**\n * @param options - Options\n * @param options.nodes - Array of nodes\n */\n constructor(\n { nodes = [], ...options }: ConstructorParameters<typeof AeSdkMethods>[0] & {\n nodes?: Array<{ name: string; instance: Node }>;\n } = {},\n ) {\n super(options);\n\n nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0));\n }\n\n get compilerApi(): CompilerHttp {\n if (this._options.onCompiler == null) {\n throw new CompilerError('You can\\'t use Compiler API. Compiler is not ready!');\n }\n return this._options.onCompiler;\n }\n\n get api(): Node {\n this.ensureNodeConnected();\n return this.pool.get(this.selectedNodeName) as Node;\n }\n\n /**\n * Add Node\n * @param name - Node name\n * @param node - Node instance\n * @param select - Select this node as current\n * @example\n * ```js\n * // add and select new node with name 'testNode'\n * aeSdkBase.addNode('testNode', new Node({ url }), true)\n * ```\n */\n addNode(name: string, node: Node, select = false): void {\n if (this.pool.has(name)) throw new DuplicateNodeError(name);\n\n this.pool.set(name, node);\n if (select || this.selectedNodeName == null) {\n this.selectNode(name);\n }\n }\n\n /**\n * Select Node\n * @param name - Node name\n * @example\n * nodePool.selectNode('testNode')\n */\n selectNode(name: string): void {\n if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);\n this.selectedNodeName = name;\n }\n\n /**\n * Check if you have selected node\n * @example\n * nodePool.isNodeConnected()\n */\n isNodeConnected(): this is AeSdkBase & { selectedNodeName: string } {\n return this.selectedNodeName != null;\n }\n\n protected ensureNodeConnected(): asserts this is AeSdkBase & { selectedNodeName: string } {\n if (!this.isNodeConnected()) {\n throw new NodeNotFoundError('You can\\'t use Node API. Node is not connected or not defined!');\n }\n }\n\n /**\n * Get information about node\n * @example\n * ```js\n * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }\n * ```\n */\n async getNodeInfo(): Promise<NodeInfo> {\n this.ensureNodeConnected();\n return {\n name: this.selectedNodeName,\n ...await this.api.getNodeInfo(),\n };\n }\n\n /**\n * Get array of available nodes\n * @example\n * nodePool.getNodesInPool()\n */\n async getNodesInPool(): Promise<NodeInfo[]> {\n return Promise.all(\n Array.from(this.pool.entries()).map(async ([name, node]) => ({\n name,\n ...await node.getNodeInfo(),\n })),\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n addresses(): Encoded.AccountAddress[] {\n return [];\n }\n\n get address(): Encoded.AccountAddress {\n return this._resolveAccount().address;\n }\n\n async sign(\n data: string | Uint8Array,\n { onAccount, ...options }: { onAccount?: OnAccount } = {},\n ): Promise<Uint8Array> {\n return this._resolveAccount(onAccount).sign(data, options);\n }\n\n async signTransaction(\n tx: Encoded.Transaction,\n { onAccount, ...options }: { onAccount?: OnAccount } & Parameters<AccountBase['signTransaction']>[1] = {},\n ): Promise<Encoded.Transaction> {\n const networkId = this.selectedNodeName !== null ? await this.api.getNetworkId() : undefined;\n return this._resolveAccount(onAccount).signTransaction(tx, { networkId, ...options });\n }\n\n async signMessage(\n message: string,\n { onAccount, ...options }: { onAccount?: OnAccount } & Parameters<AccountBase['signMessage']>[1] = {},\n ): Promise<Uint8Array> {\n return this._resolveAccount(onAccount).signMessage(message, options);\n }\n\n override _getOptions(): {\n onNode: Node;\n onAccount: AccountBase;\n onCompiler: CompilerHttp;\n } {\n return {\n ...super._getOptions(),\n onNode: getValueOrErrorProxy(() => this.api),\n onCompiler: getValueOrErrorProxy(() => this.compilerApi),\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AeSdkBase.mjs","names":["CompilerError","DuplicateNodeError","NodeNotFoundError","AeSdkMethods","getValueOrErrorProxy","AeSdkBase","constructor","nodes","options","Map","forEach","i","name","instance","addNode","compilerApi","_options","onCompiler","api","ensureNodeConnected","pool","get","selectedNodeName","node","select","has","set","selectNode","isNodeConnected","getNodeInfo","getNodesInPool","Promise","all","Array","from","entries","map","addresses","address","_resolveAccount","sign","data","onAccount","signTransaction","tx","networkId","getNetworkId","undefined","signMessage","message","_getOptions","onNode"],"sources":["../src/AeSdkBase.ts"],"sourcesContent":["import Node from './Node';\nimport AccountBase from './account/Base';\nimport { CompilerError, DuplicateNodeError, NodeNotFoundError } from './utils/errors';\nimport { Encoded } from './utils/encoder';\nimport CompilerBase from './contract/compiler/Base';\nimport AeSdkMethods, { OnAccount, getValueOrErrorProxy } from './AeSdkMethods';\n\ntype NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string };\n\n/**\n * Basic AeSdk class implements:\n * - node selector,\n * - integrated compiler support,\n * - wrappers of account methods mapped to the current account.\n */\nexport default class AeSdkBase extends AeSdkMethods {\n pool: Map<string, Node> = new Map();\n\n selectedNodeName?: string;\n\n /**\n * @param options - Options\n * @param options.nodes - Array of nodes\n */\n constructor(\n { nodes = [], ...options }: ConstructorParameters<typeof AeSdkMethods>[0] & {\n nodes?: Array<{ name: string; instance: Node }>;\n } = {},\n ) {\n super(options);\n\n nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0));\n }\n\n // TODO: consider dropping this getter, because:\n // compiler is not intended to be used separately any more (functionality limited to sdk needs)\n // and user creates its instance by himself\n get compilerApi(): CompilerBase {\n if (this._options.onCompiler == null) {\n throw new CompilerError('You can\\'t use Compiler API. Compiler is not ready!');\n }\n return this._options.onCompiler;\n }\n\n get api(): Node {\n this.ensureNodeConnected();\n return this.pool.get(this.selectedNodeName) as Node;\n }\n\n /**\n * Add Node\n * @param name - Node name\n * @param node - Node instance\n * @param select - Select this node as current\n * @example\n * ```js\n * // add and select new node with name 'testNode'\n * aeSdkBase.addNode('testNode', new Node({ url }), true)\n * ```\n */\n addNode(name: string, node: Node, select = false): void {\n if (this.pool.has(name)) throw new DuplicateNodeError(name);\n\n this.pool.set(name, node);\n if (select || this.selectedNodeName == null) {\n this.selectNode(name);\n }\n }\n\n /**\n * Select Node\n * @param name - Node name\n * @example\n * nodePool.selectNode('testNode')\n */\n selectNode(name: string): void {\n if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);\n this.selectedNodeName = name;\n }\n\n /**\n * Check if you have selected node\n * @example\n * nodePool.isNodeConnected()\n */\n isNodeConnected(): this is AeSdkBase & { selectedNodeName: string } {\n return this.selectedNodeName != null;\n }\n\n protected ensureNodeConnected(): asserts this is AeSdkBase & { selectedNodeName: string } {\n if (!this.isNodeConnected()) {\n throw new NodeNotFoundError('You can\\'t use Node API. Node is not connected or not defined!');\n }\n }\n\n /**\n * Get information about node\n * @example\n * ```js\n * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }\n * ```\n */\n async getNodeInfo(): Promise<NodeInfo> {\n this.ensureNodeConnected();\n return {\n name: this.selectedNodeName,\n ...await this.api.getNodeInfo(),\n };\n }\n\n /**\n * Get array of available nodes\n * @example\n * nodePool.getNodesInPool()\n */\n async getNodesInPool(): Promise<NodeInfo[]> {\n return Promise.all(\n Array.from(this.pool.entries()).map(async ([name, node]) => ({\n name,\n ...await node.getNodeInfo(),\n })),\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n addresses(): Encoded.AccountAddress[] {\n return [];\n }\n\n get address(): Encoded.AccountAddress {\n return this._resolveAccount().address;\n }\n\n async sign(\n data: string | Uint8Array,\n { onAccount, ...options }: { onAccount?: OnAccount } = {},\n ): Promise<Uint8Array> {\n return this._resolveAccount(onAccount).sign(data, options);\n }\n\n async signTransaction(\n tx: Encoded.Transaction,\n { onAccount, ...options }: { onAccount?: OnAccount } & Parameters<AccountBase['signTransaction']>[1] = {},\n ): Promise<Encoded.Transaction> {\n const networkId = this.selectedNodeName !== null ? await this.api.getNetworkId() : undefined;\n return this._resolveAccount(onAccount).signTransaction(tx, { networkId, ...options });\n }\n\n async signMessage(\n message: string,\n { onAccount, ...options }: { onAccount?: OnAccount } & Parameters<AccountBase['signMessage']>[1] = {},\n ): Promise<Uint8Array> {\n return this._resolveAccount(onAccount).signMessage(message, options);\n }\n\n override _getOptions(): {\n onNode: Node;\n onAccount: AccountBase;\n onCompiler: CompilerBase;\n } {\n return {\n ...super._getOptions(),\n onNode: getValueOrErrorProxy(() => this.api),\n onCompiler: getValueOrErrorProxy(() => this.compilerApi),\n };\n }\n}\n"],"mappings":";SAESA,aAAa,EAAEC,kBAAkB,EAAEC,iBAAiB;AAAA,OAGtDC,YAAY,IAAeC,oBAAoB;AAItD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,SAAS,SAASF,YAAY,CAAC;EAKlD;AACF;AACA;AACA;EACEG,WAAW,GAIT;IAAA,IAHA;MAAEC,KAAK,GAAG,EAAE;MAAE,GAAGC;IAEjB,CAAC,uEAAG,CAAC,CAAC;IAEN,KAAK,CAACA,OAAO,CAAC;IAAC,8BAbS,IAAIC,GAAG,EAAE;IAejCF,KAAK,CAACG,OAAO,CAAC,OAAqBC,CAAC;MAAA,IAArB;QAAEC,IAAI;QAAEC;MAAS,CAAC;MAAA,OAAQ,IAAI,CAACC,OAAO,CAACF,IAAI,EAAEC,QAAQ,EAAEF,CAAC,KAAK,CAAC,CAAC;IAAA,EAAC;EACjF;;EAEA;EACA;EACA;EACA,IAAII,WAAW,GAAiB;IAC9B,IAAI,IAAI,CAACC,QAAQ,CAACC,UAAU,IAAI,IAAI,EAAE;MACpC,MAAM,IAAIjB,aAAa,CAAC,qDAAqD,CAAC;IAChF;IACA,OAAO,IAAI,CAACgB,QAAQ,CAACC,UAAU;EACjC;EAEA,IAAIC,GAAG,GAAS;IACd,IAAI,CAACC,mBAAmB,EAAE;IAC1B,OAAO,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,IAAI,CAACC,gBAAgB,CAAC;EAC7C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACER,OAAO,CAACF,IAAY,EAAEW,IAAU,EAAwB;IAAA,IAAtBC,MAAM,uEAAG,KAAK;IAC9C,IAAI,IAAI,CAACJ,IAAI,CAACK,GAAG,CAACb,IAAI,CAAC,EAAE,MAAM,IAAIX,kBAAkB,CAACW,IAAI,CAAC;IAE3D,IAAI,CAACQ,IAAI,CAACM,GAAG,CAACd,IAAI,EAAEW,IAAI,CAAC;IACzB,IAAIC,MAAM,IAAI,IAAI,CAACF,gBAAgB,IAAI,IAAI,EAAE;MAC3C,IAAI,CAACK,UAAU,CAACf,IAAI,CAAC;IACvB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEe,UAAU,CAACf,IAAY,EAAQ;IAC7B,IAAI,CAAC,IAAI,CAACQ,IAAI,CAACK,GAAG,CAACb,IAAI,CAAC,EAAE,MAAM,IAAIV,iBAAiB,CAAE,kBAAiBU,IAAK,cAAa,CAAC;IAC3F,IAAI,CAACU,gBAAgB,GAAGV,IAAI;EAC9B;;EAEA;AACF;AACA;AACA;AACA;EACEgB,eAAe,GAAqD;IAClE,OAAO,IAAI,CAACN,gBAAgB,IAAI,IAAI;EACtC;EAEUH,mBAAmB,GAA6D;IACxF,IAAI,CAAC,IAAI,CAACS,eAAe,EAAE,EAAE;MAC3B,MAAM,IAAI1B,iBAAiB,CAAC,gEAAgE,CAAC;IAC/F;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAM2B,WAAW,GAAsB;IACrC,IAAI,CAACV,mBAAmB,EAAE;IAC1B,OAAO;MACLP,IAAI,EAAE,IAAI,CAACU,gBAAgB;MAC3B,IAAG,MAAM,IAAI,CAACJ,GAAG,CAACW,WAAW,EAAE;IACjC,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,cAAc,GAAwB;IAC1C,OAAOC,OAAO,CAACC,GAAG,CAChBC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACd,IAAI,CAACe,OAAO,EAAE,CAAC,CAACC,GAAG,CAAC;MAAA,IAAO,CAACxB,IAAI,EAAEW,IAAI,CAAC;MAAA,OAAM;QAC3DX,IAAI;QACJ,IAAG,MAAMW,IAAI,CAACM,WAAW,EAAE;MAC7B,CAAC;IAAA,CAAC,CAAC,CACJ;EACH;;EAEA;EACAQ,SAAS,GAA6B;IACpC,OAAO,EAAE;EACX;EAEA,IAAIC,OAAO,GAA2B;IACpC,OAAO,IAAI,CAACC,eAAe,EAAE,CAACD,OAAO;EACvC;EAEA,MAAME,IAAI,CACRC,IAAyB,EAEJ;IAAA,IADrB;MAAEC,SAAS;MAAE,GAAGlC;IAAmC,CAAC,uEAAG,CAAC,CAAC;IAEzD,OAAO,IAAI,CAAC+B,eAAe,CAACG,SAAS,CAAC,CAACF,IAAI,CAACC,IAAI,EAAEjC,OAAO,CAAC;EAC5D;EAEA,MAAMmC,eAAe,CACnBC,EAAuB,EAEO;IAAA,IAD9B;MAAEF,SAAS;MAAE,GAAGlC;IAAmF,CAAC,uEAAG,CAAC,CAAC;IAEzG,MAAMqC,SAAS,GAAG,IAAI,CAACvB,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAACJ,GAAG,CAAC4B,YAAY,EAAE,GAAGC,SAAS;IAC5F,OAAO,IAAI,CAACR,eAAe,CAACG,SAAS,CAAC,CAACC,eAAe,CAACC,EAAE,EAAE;MAAEC,SAAS;MAAE,GAAGrC;IAAQ,CAAC,CAAC;EACvF;EAEA,MAAMwC,WAAW,CACfC,OAAe,EAEM;IAAA,IADrB;MAAEP,SAAS;MAAE,GAAGlC;IAA+E,CAAC,uEAAG,CAAC,CAAC;IAErG,OAAO,IAAI,CAAC+B,eAAe,CAACG,SAAS,CAAC,CAACM,WAAW,CAACC,OAAO,EAAEzC,OAAO,CAAC;EACtE;EAES0C,WAAW,GAIlB;IACA,OAAO;MACL,GAAG,KAAK,CAACA,WAAW,EAAE;MACtBC,MAAM,EAAE/C,oBAAoB,CAAC,MAAM,IAAI,CAACc,GAAG,CAAC;MAC5CD,UAAU,EAAEb,oBAAoB,CAAC,MAAM,IAAI,CAACW,WAAW;IACzD,CAAC;EACH;AACF"}
@@ -10,7 +10,7 @@ import Node from './Node';
10
10
  import { Tag } from './tx/builder/constants';
11
11
  import AccountBase from './account/Base';
12
12
  import { Encoded } from './utils/encoder';
13
- import CompilerHttp from './contract/CompilerHttp';
13
+ import CompilerBase from './contract/compiler/Base';
14
14
  export type OnAccount = Encoded.AccountAddress | AccountBase | undefined;
15
15
  export declare function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value;
16
16
  declare const methods: {
@@ -97,9 +97,8 @@ declare class AeSdkMethods {
97
97
  buildTx<TxType extends Tag>(txType: TxType, options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & {
98
98
  onNode?: Node;
99
99
  }): Promise<Encoded.Transaction>;
100
- initializeContract<Methods extends ContractMethodsBase>(options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode' | 'onCompiler'> & {
100
+ initializeContract<Methods extends ContractMethodsBase>(options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode'> & {
101
101
  onNode?: Node;
102
- onCompiler?: CompilerHttp;
103
102
  }): Promise<Contract<Methods>>;
104
103
  }
105
104
  type RequiredKeys<T> = {
@@ -109,7 +108,7 @@ type OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ?
109
108
  type MakeOptional<Options> = OptionalIfNotRequired<[
110
109
  Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'> & {
111
110
  onNode?: Node;
112
- onCompiler?: CompilerHttp;
111
+ onCompiler?: CompilerBase;
113
112
  onAccount?: OnAccount;
114
113
  }
115
114
  ]>;
@@ -1 +1 @@
1
- {"version":3,"file":"AeSdkMethods.mjs","names":["chainMethods","aensMethods","spendMethods","oracleMethods","Contract","contractGaMethods","_buildTx","mapObject","AE_AMOUNT_FORMATS","ArgumentError","NotImplementedError","TypeError","getValueOrErrorProxy","valueCb","Proxy","Object","fromEntries","map","name","get","t","property","receiver","target","value","Reflect","bind","has","InvalidTxError","_2","chainMethodsOther","methods","AeSdkMethods","constructor","options","denomination","AETTOS","assign","_options","_resolveAccount","account","String","_getOptions","onAccount","buildTx","txType","initializeContract","onNode","onCompiler","otherOptions","initialize","prototype","handler","methodWrapper","args","length"],"sources":["../src/AeSdkMethods.ts"],"sourcesContent":["import * as chainMethods from './chain';\nimport * as aensMethods from './aens';\nimport * as spendMethods from './spend';\nimport * as oracleMethods from './oracle';\nimport Contract, { ContractMethodsBase } from './contract/Contract';\nimport * as contractGaMethods from './contract/ga';\nimport { _buildTx } from './tx';\nimport { mapObject, UnionToIntersection } from './utils/other';\nimport Node from './Node';\nimport { AE_AMOUNT_FORMATS } from './utils/amount-formatter';\nimport { Tag } from './tx/builder/constants';\nimport AccountBase from './account/Base';\nimport { Encoded } from './utils/encoder';\nimport CompilerHttp from './contract/CompilerHttp';\nimport { ArgumentError, NotImplementedError, TypeError } from './utils/errors';\n\nexport type OnAccount = Encoded.AccountAddress | AccountBase | undefined;\n\nexport function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value {\n return new Proxy({}, {\n ...Object.fromEntries([\n 'apply', 'construct', 'defineProperty', 'deleteProperty', 'getOwnPropertyDescriptor',\n 'getPrototypeOf', 'isExtensible', 'ownKeys', 'preventExtensions', 'set', 'setPrototypeOf',\n ].map((name) => [name, () => { throw new NotImplementedError(`${name} proxy request`); }])),\n get(t: {}, property: string | symbol, receiver: any) {\n const target = valueCb();\n const value = Reflect.get(target, property, receiver);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n has(t: {}, property: string | symbol) {\n return Reflect.has(valueCb(), property);\n },\n }) as Value;\n}\n\nconst { InvalidTxError: _2, ...chainMethodsOther } = chainMethods;\n\nconst methods = {\n ...chainMethodsOther,\n ...aensMethods,\n ...spendMethods,\n ...oracleMethods,\n ...contractGaMethods,\n} as const;\n\ntype Decrement<Number extends number> = [-1, 0, 1, 2, 3, 4, 5][Number];\ntype GetMethodsOptions <Methods extends { [key: string]: Function }> =\n {\n [Name in keyof Methods]:\n Methods[Name] extends (...args: infer Args) => any\n ? Args[Decrement<Args['length']>] : never\n };\ntype MethodsOptions = GetMethodsOptions<typeof methods>;\ninterface AeSdkMethodsOptions\n extends Partial<UnionToIntersection<MethodsOptions[keyof MethodsOptions]>> {\n nodes?: Array<{ name: string; instance: Node }>;\n}\n\n/**\n * AeSdkMethods is the composition of:\n * - chain methods\n * - tx methods\n * - aens methods\n * - spend methods\n * - oracle methods\n * - contract methods\n * - contract ga methods\n *\n * While these methods can be used separately, this class provides a handy way to store\n * their context (current account, network, and compiler to use).\n */\nclass AeSdkMethods {\n _options: AeSdkMethodsOptions = { denomination: AE_AMOUNT_FORMATS.AETTOS };\n\n /**\n * @param options - Options\n */\n constructor(options: AeSdkMethodsOptions = {}) {\n Object.assign(this._options, options);\n }\n\n /**\n * Resolves an account\n * @param account - ak-address, instance of AccountBase, or keypair\n */\n // eslint-disable-next-line class-methods-use-this\n _resolveAccount(account?: OnAccount): AccountBase {\n if (typeof account === 'string') throw new NotImplementedError('Address in AccountResolver');\n if (typeof account === 'object') return account;\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), '\n + `or instance of AccountBase, got ${String(account)} instead`,\n );\n }\n\n _getOptions(): AeSdkMethodsOptions & { onAccount: AccountBase } {\n return {\n ...this._options,\n onAccount: getValueOrErrorProxy(() => this._resolveAccount()),\n };\n }\n\n async buildTx<TxType extends Tag>(\n txType: TxType,\n options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node },\n ): Promise<Encoded.Transaction> {\n // @ts-expect-error TODO: need to figure out what's wrong here\n return _buildTx<TxType>(txType, {\n ...this._getOptions(),\n ...options,\n });\n }\n\n async initializeContract<Methods extends ContractMethodsBase>(\n options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode' | 'onCompiler'> &\n { onNode?: Node; onCompiler?: CompilerHttp },\n ): Promise<Contract<Methods>> {\n const { onNode, onCompiler, ...otherOptions } = this._getOptions();\n if (onCompiler == null || onNode == null) {\n throw new ArgumentError('onCompiler, onNode', 'provided', null);\n }\n return Contract.initialize<Methods>({\n ...otherOptions,\n onNode,\n onCompiler,\n ...options,\n });\n }\n}\n\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T];\n\ntype OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T;\n\ntype MakeOptional<Options> = OptionalIfNotRequired<[\n Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'>\n & { onNode?: Node; onCompiler?: CompilerHttp; onAccount?: OnAccount },\n]>;\n\ntype TransformMethods <Methods extends { [key: string]: Function }> =\n {\n [Name in keyof Methods]:\n Methods[Name] extends (...args: [...infer Args, infer Options]) => infer Ret\n ? (...args: [...Args, ...MakeOptional<Options>]) => Ret\n : never\n };\n\ninterface AeSdkMethodsTransformed extends TransformMethods<typeof methods> {}\n\nObject.assign(AeSdkMethods.prototype, mapObject<Function, Function>(\n methods,\n ([name, handler]) => [\n name,\n function methodWrapper(...args: any[]) {\n args.length = handler.length;\n const options = args[args.length - 1];\n args[args.length - 1] = {\n ...this._getOptions(),\n ...options,\n ...options?.onAccount != null && { onAccount: this._resolveAccount(options.onAccount) },\n };\n return handler(...args);\n },\n ],\n));\n\nexport default AeSdkMethods as new (options?: ConstructorParameters<typeof AeSdkMethods>[0]) =>\nAeSdkMethods & AeSdkMethodsTransformed;\n"],"mappings":";OAAO,KAAKA,YAAY;AAAA,OACjB,KAAKC,WAAW;AAAA,OAChB,KAAKC,YAAY;AAAA,OACjB,KAAKC,aAAa;AAAA,OAClBC,QAAQ;AAAA,OACR,KAAKC,iBAAiB;AAAA,SACpBC,QAAQ;AAAA,SACRC,SAAS;AAAA,SAETC,iBAAiB;AAAA,SAKjBC,aAAa,EAAEC,mBAAmB,EAAEC,SAAS;AAItD,OAAO,SAASC,oBAAoB,CAAuBC,OAAoB,EAAS;EACtF,OAAO,IAAIC,KAAK,CAAC,CAAC,CAAC,EAAE;IACnB,GAAGC,MAAM,CAACC,WAAW,CAAC,CACpB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,0BAA0B,EACpF,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,CAC1F,CAACC,GAAG,CAAEC,IAAI,IAAK,CAACA,IAAI,EAAE,MAAM;MAAE,MAAM,IAAIR,mBAAmB,CAAE,GAAEQ,IAAK,gBAAe,CAAC;IAAE,CAAC,CAAC,CAAC,CAAC;IAC3FC,GAAG,CAACC,CAAK,EAAEC,QAAyB,EAAEC,QAAa,EAAE;MACnD,MAAMC,MAAM,GAAGV,OAAO,EAAE;MACxB,MAAMW,KAAK,GAAGC,OAAO,CAACN,GAAG,CAACI,MAAM,EAAEF,QAAQ,EAAEC,QAAQ,CAAC;MACrD,OAAO,OAAOE,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACE,IAAI,CAACH,MAAM,CAAC,GAAGC,KAAK;IACjE,CAAC;IACDG,GAAG,CAACP,CAAK,EAAEC,QAAyB,EAAE;MACpC,OAAOI,OAAO,CAACE,GAAG,CAACd,OAAO,EAAE,EAAEQ,QAAQ,CAAC;IACzC;EACF,CAAC,CAAC;AACJ;AAEA,MAAM;EAAEO,cAAc,EAAEC,EAAE;EAAE,GAAGC;AAAkB,CAAC,GAAG9B,YAAY;AAEjE,MAAM+B,OAAO,GAAG;EACd,GAAGD,iBAAiB;EACpB,GAAG7B,WAAW;EACd,GAAGC,YAAY;EACf,GAAGC,aAAa;EAChB,GAAGE;AACL,CAAU;AAeV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2B,YAAY,CAAC;EAGjB;AACF;AACA;EACEC,WAAW,GAAoC;IAAA,IAAnCC,OAA4B,uEAAG,CAAC,CAAC;IAAA,kCALb;MAAEC,YAAY,EAAE3B,iBAAiB,CAAC4B;IAAO,CAAC;IAMxErB,MAAM,CAACsB,MAAM,CAAC,IAAI,CAACC,QAAQ,EAAEJ,OAAO,CAAC;EACvC;;EAEA;AACF;AACA;AACA;EACE;EACAK,eAAe,CAACC,OAAmB,EAAe;IAChD,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE,MAAM,IAAI9B,mBAAmB,CAAC,4BAA4B,CAAC;IAC5F,IAAI,OAAO8B,OAAO,KAAK,QAAQ,EAAE,OAAOA,OAAO;IAC/C,MAAM,IAAI7B,SAAS,CACjB,qDAAqD,GAClD,mCAAkC8B,MAAM,CAACD,OAAO,CAAE,UAAS,CAC/D;EACH;EAEAE,WAAW,GAAqD;IAC9D,OAAO;MACL,GAAG,IAAI,CAACJ,QAAQ;MAChBK,SAAS,EAAE/B,oBAAoB,CAAC,MAAM,IAAI,CAAC2B,eAAe,EAAE;IAC9D,CAAC;EACH;EAEA,MAAMK,OAAO,CACXC,MAAc,EACdX,OAAmF,EACrD;IAC9B;IACA,OAAO5B,QAAQ,CAASuC,MAAM,EAAE;MAC9B,GAAG,IAAI,CAACH,WAAW,EAAE;MACrB,GAAGR;IACL,CAAC,CAAC;EACJ;EAEA,MAAMY,kBAAkB,CACtBZ,OAC4C,EAChB;IAC5B,MAAM;MAAEa,MAAM;MAAEC,UAAU;MAAE,GAAGC;IAAa,CAAC,GAAG,IAAI,CAACP,WAAW,EAAE;IAClE,IAAIM,UAAU,IAAI,IAAI,IAAID,MAAM,IAAI,IAAI,EAAE;MACxC,MAAM,IAAItC,aAAa,CAAC,oBAAoB,EAAE,UAAU,EAAE,IAAI,CAAC;IACjE;IACA,OAAOL,QAAQ,CAAC8C,UAAU,CAAU;MAClC,GAAGD,YAAY;MACfF,MAAM;MACNC,UAAU;MACV,GAAGd;IACL,CAAC,CAAC;EACJ;AACF;AAuBAnB,MAAM,CAACsB,MAAM,CAACL,YAAY,CAACmB,SAAS,EAAE5C,SAAS,CAC7CwB,OAAO,EACP;EAAA,IAAC,CAACb,IAAI,EAAEkC,OAAO,CAAC;EAAA,OAAK,CACnBlC,IAAI,EACJ,SAASmC,aAAa,GAAiB;IAAA,kCAAbC,IAAI;MAAJA,IAAI;IAAA;IAC5BA,IAAI,CAACC,MAAM,GAAGH,OAAO,CAACG,MAAM;IAC5B,MAAMrB,OAAO,GAAGoB,IAAI,CAACA,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;IACrCD,IAAI,CAACA,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC,GAAG;MACtB,GAAG,IAAI,CAACb,WAAW,EAAE;MACrB,GAAGR,OAAO;MACV,IAAG,CAAAA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,SAAS,KAAI,IAAI,IAAI;QAAEA,SAAS,EAAE,IAAI,CAACJ,eAAe,CAACL,OAAO,CAACS,SAAS;MAAE,CAAC;IACzF,CAAC;IACD,OAAOS,OAAO,CAAC,GAAGE,IAAI,CAAC;EACzB,CAAC,CACF;AAAA,EACF,CAAC;AAEF,eAAetB,YAAY"}
1
+ {"version":3,"file":"AeSdkMethods.mjs","names":["chainMethods","aensMethods","spendMethods","oracleMethods","Contract","contractGaMethods","_buildTx","mapObject","AE_AMOUNT_FORMATS","ArgumentError","NotImplementedError","TypeError","getValueOrErrorProxy","valueCb","Proxy","Object","fromEntries","map","name","get","t","property","receiver","target","value","Reflect","bind","has","InvalidTxError","_2","chainMethodsOther","methods","AeSdkMethods","constructor","options","denomination","AETTOS","assign","_options","_resolveAccount","account","String","_getOptions","onAccount","buildTx","txType","initializeContract","onNode","onCompiler","otherOptions","initialize","prototype","handler","methodWrapper","args","length"],"sources":["../src/AeSdkMethods.ts"],"sourcesContent":["import * as chainMethods from './chain';\nimport * as aensMethods from './aens';\nimport * as spendMethods from './spend';\nimport * as oracleMethods from './oracle';\nimport Contract, { ContractMethodsBase } from './contract/Contract';\nimport * as contractGaMethods from './contract/ga';\nimport { _buildTx } from './tx';\nimport { mapObject, UnionToIntersection } from './utils/other';\nimport Node from './Node';\nimport { AE_AMOUNT_FORMATS } from './utils/amount-formatter';\nimport { Tag } from './tx/builder/constants';\nimport AccountBase from './account/Base';\nimport { Encoded } from './utils/encoder';\nimport CompilerBase from './contract/compiler/Base';\nimport { ArgumentError, NotImplementedError, TypeError } from './utils/errors';\n\nexport type OnAccount = Encoded.AccountAddress | AccountBase | undefined;\n\nexport function getValueOrErrorProxy<Value extends object>(valueCb: () => Value): Value {\n return new Proxy({}, {\n ...Object.fromEntries([\n 'apply', 'construct', 'defineProperty', 'deleteProperty', 'getOwnPropertyDescriptor',\n 'getPrototypeOf', 'isExtensible', 'ownKeys', 'preventExtensions', 'set', 'setPrototypeOf',\n ].map((name) => [name, () => { throw new NotImplementedError(`${name} proxy request`); }])),\n get(t: {}, property: string | symbol, receiver: any) {\n const target = valueCb();\n const value = Reflect.get(target, property, receiver);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n has(t: {}, property: string | symbol) {\n return Reflect.has(valueCb(), property);\n },\n }) as Value;\n}\n\nconst { InvalidTxError: _2, ...chainMethodsOther } = chainMethods;\n\nconst methods = {\n ...chainMethodsOther,\n ...aensMethods,\n ...spendMethods,\n ...oracleMethods,\n ...contractGaMethods,\n} as const;\n\ntype Decrement<Number extends number> = [-1, 0, 1, 2, 3, 4, 5][Number];\ntype GetMethodsOptions <Methods extends { [key: string]: Function }> =\n {\n [Name in keyof Methods]:\n Methods[Name] extends (...args: infer Args) => any\n ? Args[Decrement<Args['length']>] : never\n };\ntype MethodsOptions = GetMethodsOptions<typeof methods>;\ninterface AeSdkMethodsOptions\n extends Partial<UnionToIntersection<MethodsOptions[keyof MethodsOptions]>> {\n nodes?: Array<{ name: string; instance: Node }>;\n}\n\n/**\n * AeSdkMethods is the composition of:\n * - chain methods\n * - tx methods\n * - aens methods\n * - spend methods\n * - oracle methods\n * - contract methods\n * - contract ga methods\n *\n * While these methods can be used separately, this class provides a handy way to store\n * their context (current account, network, and compiler to use).\n */\nclass AeSdkMethods {\n _options: AeSdkMethodsOptions = { denomination: AE_AMOUNT_FORMATS.AETTOS };\n\n /**\n * @param options - Options\n */\n constructor(options: AeSdkMethodsOptions = {}) {\n Object.assign(this._options, options);\n }\n\n /**\n * Resolves an account\n * @param account - ak-address, instance of AccountBase, or keypair\n */\n // eslint-disable-next-line class-methods-use-this\n _resolveAccount(account?: OnAccount): AccountBase {\n if (typeof account === 'string') throw new NotImplementedError('Address in AccountResolver');\n if (typeof account === 'object') return account;\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), '\n + `or instance of AccountBase, got ${String(account)} instead`,\n );\n }\n\n _getOptions(): AeSdkMethodsOptions & { onAccount: AccountBase } {\n return {\n ...this._options,\n onAccount: getValueOrErrorProxy(() => this._resolveAccount()),\n };\n }\n\n async buildTx<TxType extends Tag>(\n txType: TxType,\n options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node },\n ): Promise<Encoded.Transaction> {\n // @ts-expect-error TODO: need to figure out what's wrong here\n return _buildTx<TxType>(txType, {\n ...this._getOptions(),\n ...options,\n });\n }\n\n async initializeContract<Methods extends ContractMethodsBase>(\n options?: Omit<Parameters<typeof Contract.initialize>[0], 'onNode'> & { onNode?: Node },\n ): Promise<Contract<Methods>> {\n const { onNode, onCompiler, ...otherOptions } = this._getOptions();\n if (onCompiler == null || onNode == null) {\n throw new ArgumentError('onCompiler, onNode', 'provided', null);\n }\n return Contract.initialize<Methods>({\n ...otherOptions,\n onNode,\n onCompiler,\n ...options,\n });\n }\n}\n\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T];\n\ntype OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T;\n\ntype MakeOptional<Options> = OptionalIfNotRequired<[\n Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'>\n & { onNode?: Node; onCompiler?: CompilerBase; onAccount?: OnAccount },\n]>;\n\ntype TransformMethods <Methods extends { [key: string]: Function }> =\n {\n [Name in keyof Methods]:\n Methods[Name] extends (...args: [...infer Args, infer Options]) => infer Ret\n ? (...args: [...Args, ...MakeOptional<Options>]) => Ret\n : never\n };\n\ninterface AeSdkMethodsTransformed extends TransformMethods<typeof methods> {}\n\nObject.assign(AeSdkMethods.prototype, mapObject<Function, Function>(\n methods,\n ([name, handler]) => [\n name,\n function methodWrapper(...args: any[]) {\n args.length = handler.length;\n const options = args[args.length - 1];\n args[args.length - 1] = {\n ...this._getOptions(),\n ...options,\n ...options?.onAccount != null && { onAccount: this._resolveAccount(options.onAccount) },\n };\n return handler(...args);\n },\n ],\n));\n\nexport default AeSdkMethods as new (options?: ConstructorParameters<typeof AeSdkMethods>[0]) =>\nAeSdkMethods & AeSdkMethodsTransformed;\n"],"mappings":"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"}
package/es/Node.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  import { Node as NodeApi, NodeOptionalParams } from './apis/node';
2
2
  import { Encoded } from './utils/encoder';
3
+ import { ConsensusProtocolVersion } from './tx/builder/constants';
3
4
  declare const bigIntPropertyNames: readonly ["balance", "queryFee", "fee", "amount", "nameFee", "channelAmount", "initiatorAmount", "responderAmount", "channelReserve", "initiatorAmountFinal", "responderAmountFinal", "gasPrice", "deposit"];
4
- declare const numberPropertyNames: readonly ["time", "gas", "gasUsed", "nameSalt", "nonce", "nextNonce", "height", "blockHeight", "top", "topBlockHeight", "ttl", "nameTtl", "clientTtl", "inbound", "outbound", "peerCount", "pendingTransactionsCount", "effectiveAtHeight", "version", "solutions", "round"];
5
+ declare const numberPropertyNames: readonly ["time", "gas", "gasUsed", "nameSalt", "nonce", "nextNonce", "height", "blockHeight", "topBlockHeight", "ttl", "nameTtl", "clientTtl", "inbound", "outbound", "peerCount", "pendingTransactionsCount", "effectiveAtHeight", "version", "solutions", "round"];
5
6
  type BigIntPropertyNames = typeof bigIntPropertyNames[number];
6
7
  type NumberPropertyNames = typeof numberPropertyNames[number];
7
8
  type PreserveOptional<NewType, OrigType> = OrigType extends undefined ? NewType | undefined : NewType;
8
9
  export type TransformNodeType<Type> = Type extends (...args: infer Args) => infer Ret ? (...args: TransformNodeType<Args>) => TransformNodeType<Ret> : Type extends [infer Item, ...infer Rest] ? [TransformNodeType<Item>, ...TransformNodeType<Rest>] : Type extends Array<infer Item> ? Array<TransformNodeType<Item>> : Type extends Promise<infer T> ? Promise<TransformNodeType<T>> : Type extends {
9
10
  [P in any]: any;
10
11
  } ? {
11
- [Property in keyof Type]: Property extends BigIntPropertyNames ? PreserveOptional<bigint, Type[Property]> : Property extends NumberPropertyNames ? PreserveOptional<number, Type[Property]> : Property extends 'txHash' ? PreserveOptional<Encoded.TxHash, Type[Property]> : TransformNodeType<Type[Property]>;
12
+ [Property in keyof Type]: Property extends BigIntPropertyNames ? PreserveOptional<bigint, Type[Property]> : Property extends NumberPropertyNames ? PreserveOptional<number, Type[Property]> : Property extends 'txHash' ? PreserveOptional<Encoded.TxHash, Type[Property]> : Property extends 'bytecode' ? PreserveOptional<Encoded.ContractBytearray, Type[Property]> : TransformNodeType<Type[Property]>;
12
13
  } : Type;
13
14
  type NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {
14
15
  [Name in keyof InstanceType<typeof NodeApi>]: Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest' ? NodeApi[Name] : TransformNodeType<NodeApi[Name]>;
@@ -17,7 +18,7 @@ export interface NodeInfo {
17
18
  url: string;
18
19
  nodeNetworkId: string;
19
20
  version: string;
20
- consensusProtocolVersion: number;
21
+ consensusProtocolVersion: ConsensusProtocolVersion;
21
22
  }
22
23
  declare const Node_base: NodeTransformedApi;
23
24
  export default class Node extends Node_base {
package/es/Node.mjs CHANGED
@@ -10,7 +10,7 @@ import { genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterP
10
10
  import { Node as NodeApi } from "./apis/node/index.mjs";
11
11
  import { mapObject } from "./utils/other.mjs";
12
12
  const bigIntPropertyNames = ['balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount', 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal', 'responderAmountFinal', 'gasPrice', 'deposit'];
13
- const numberPropertyNames = ['time', 'gas', 'gasUsed', 'nameSalt', 'nonce', 'nextNonce', 'height', 'blockHeight', 'top', 'topBlockHeight', 'ttl', 'nameTtl', 'clientTtl', 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight', 'version', 'solutions', 'round'];
13
+ const numberPropertyNames = ['time', 'gas', 'gasUsed', 'nameSalt', 'nonce', 'nextNonce', 'height', 'blockHeight', 'topBlockHeight', 'ttl', 'nameTtl', 'clientTtl', 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight', 'version', 'solutions', 'round'];
14
14
  var _mapData = /*#__PURE__*/new WeakSet();
15
15
  var _encodeArg = /*#__PURE__*/new WeakSet();
16
16
  var _decodeRes = /*#__PURE__*/new WeakSet();
package/es/Node.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Node.mjs","names":["BigNumber","genRequestQueuesPolicy","genCombineGetRequestsPolicy","genErrorFormatterPolicy","genVersionCheckPolicy","Node","NodeApi","mapObject","bigIntPropertyNames","numberPropertyNames","NodeTransformed","sendOperationRequest","operationArguments","operationSpec","args","key","value","data","transform","Array","isArray","map","d","some","k","bigInt","number","toFixed","toString","BigInt","constructor","url","ignoreVersion","options","allowInsecureConnection","additionalPolicies","body","reason","statusPromise","getStatus","versionPromise","then","nodeVersion","networkId","pipeline","addPolicy","intAsString","getNetworkId","getNodeInfo","version","nodeNetworkId","protocols","topBlockHeight","consensusProtocolVersion","filter","effectiveAtHeight","reduce","acc","p","$host"],"sources":["../src/Node.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport BigNumber from 'bignumber.js';\nimport { OperationArguments, OperationSpec } from '@azure/core-client';\nimport {\n genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy,\n genVersionCheckPolicy,\n} from './utils/autorest';\nimport { Node as NodeApi, NodeOptionalParams, ErrorModel } from './apis/node';\nimport { mapObject } from './utils/other';\nimport { Encoded } from './utils/encoder';\n\nconst bigIntPropertyNames = [\n 'balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount',\n 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal',\n 'responderAmountFinal', 'gasPrice', 'deposit',\n] as const;\n\nconst numberPropertyNames = [\n 'time', 'gas', 'gasUsed', 'nameSalt',\n 'nonce', 'nextNonce', 'height', 'blockHeight', 'top', 'topBlockHeight',\n 'ttl', 'nameTtl', 'clientTtl',\n 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight',\n 'version', 'solutions', 'round',\n] as const;\n\nclass NodeTransformed extends NodeApi {\n override async sendOperationRequest(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n ): Promise<any> {\n const args = mapObject(\n operationArguments,\n ([key, value]) => [key, this.#encodeArg(value)],\n ) as OperationArguments;\n return this.#decodeRes(await super.sendOperationRequest(args, operationSpec));\n }\n\n #mapData(data: any, transform: {\n bigInt: (v: any) => any;\n number: (v: any) => any;\n }): unknown {\n if (Array.isArray(data)) return data.map((d) => this.#mapData(d, transform));\n if (data != null && typeof data === 'object') {\n return mapObject(data, ([key, value]) => {\n if (value == null) return [key, value];\n if (bigIntPropertyNames.some((k) => k === key)) return [key, transform.bigInt(value)];\n if (numberPropertyNames.some((k) => k === key)) return [key, transform.number(value)];\n return [key, this.#mapData(value, transform)];\n });\n }\n return data;\n }\n\n #encodeArg(data: any): any {\n return this.#mapData(data, {\n bigInt: (value) => {\n if (value instanceof BigNumber) return value.toFixed();\n return value.toString();\n },\n number: (value) => value.toString(),\n });\n }\n\n #decodeRes(data: any): any {\n return this.#mapData(data, {\n bigInt: (value) => BigInt(value),\n number: (value) => +value,\n });\n }\n}\n\ntype BigIntPropertyNames = typeof bigIntPropertyNames[number];\ntype NumberPropertyNames = typeof numberPropertyNames[number];\ntype PreserveOptional<NewType, OrigType> =\n OrigType extends undefined ? NewType | undefined : NewType;\nexport type TransformNodeType<Type> =\n Type extends (...args: infer Args) => infer Ret\n ? (...args: TransformNodeType<Args>) => TransformNodeType<Ret>\n : Type extends [infer Item, ...infer Rest]\n ? [TransformNodeType<Item>, ...TransformNodeType<Rest>]\n : Type extends Array<infer Item>\n ? Array<TransformNodeType<Item>>\n : Type extends Promise<infer T>\n ? Promise<TransformNodeType<T>>\n : Type extends { [P in any]: any }\n ? {\n [Property in keyof Type]:\n Property extends BigIntPropertyNames\n ? PreserveOptional<bigint, Type[Property]>\n : Property extends NumberPropertyNames\n ? PreserveOptional<number, Type[Property]>\n : Property extends 'txHash'\n ? PreserveOptional<Encoded.TxHash, Type[Property]>\n : TransformNodeType<Type[Property]>\n }\n : Type;\ntype NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {\n [Name in keyof InstanceType<typeof NodeApi>]:\n Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest'\n ? NodeApi[Name] : TransformNodeType<NodeApi[Name]>\n};\n\nexport interface NodeInfo {\n url: string;\n nodeNetworkId: string;\n version: string;\n consensusProtocolVersion: number;\n}\n\nexport default class Node extends (NodeTransformed as unknown as NodeTransformedApi) {\n #networkIdPromise?: Promise<string>;\n\n /**\n * @param url - Url for node API\n * @param options - Options\n * @param options.ignoreVersion - Don't check node version\n */\n constructor(\n url: string,\n { ignoreVersion = false, ...options }: NodeOptionalParams & { ignoreVersion?: boolean } = {},\n ) {\n // eslint-disable-next-line constructor-super\n super(url, {\n allowInsecureConnection: true,\n additionalPolicies: [\n genRequestQueuesPolicy(),\n genCombineGetRequestsPolicy(),\n genErrorFormatterPolicy((body: ErrorModel) => ` ${body.reason}`),\n ],\n ...options,\n });\n if (!ignoreVersion) {\n const statusPromise = this.getStatus();\n const versionPromise = statusPromise.then(({ nodeVersion }) => nodeVersion);\n this.#networkIdPromise = statusPromise.then(({ networkId }) => networkId);\n this.pipeline.addPolicy(\n genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'),\n );\n }\n this.intAsString = true;\n }\n\n async getNetworkId(): Promise<string> {\n this.#networkIdPromise ??= this.getStatus().then(({ networkId }) => networkId);\n return this.#networkIdPromise;\n }\n\n async getNodeInfo(): Promise<NodeInfo> {\n const {\n nodeVersion: version,\n networkId: nodeNetworkId,\n protocols,\n topBlockHeight,\n } = await this.getStatus();\n const consensusProtocolVersion = protocols\n .filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)\n .reduce(\n (acc, p) => (p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc),\n { effectiveAtHeight: -1, version: 0 },\n )\n .version;\n return {\n url: this.$host,\n nodeNetworkId,\n version,\n consensusProtocolVersion,\n };\n }\n}\n"],"mappings":";;;;;;AAAA;AACA,OAAOA,SAAS,MAAM,cAAc;AAAC,SAGnCC,sBAAsB,EAAEC,2BAA2B,EAAEC,uBAAuB,EAC5EC,qBAAqB;AAAA,SAEdC,IAAI,IAAIC,OAAO;AAAA,SACfC,SAAS;AAGlB,MAAMC,mBAAmB,GAAG,CAC1B,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAClE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAC9E,sBAAsB,EAAE,UAAU,EAAE,SAAS,CACrC;AAEV,MAAMC,mBAAmB,GAAG,CAC1B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EACpC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EACtE,KAAK,EAAE,SAAS,EAAE,WAAW,EAC7B,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE,mBAAmB,EACnF,SAAS,EAAE,WAAW,EAAE,OAAO,CACvB;AAAC;AAAA;AAAA;AAEX,MAAMC,eAAe,SAASJ,OAAO,CAAC;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EACpC,MAAeK,oBAAoB,CACjCC,kBAAsC,EACtCC,aAA4B,EACd;IACd,MAAMC,IAAI,GAAGP,SAAS,CACpBK,kBAAkB,EAClB;MAAA,IAAC,CAACG,GAAG,EAAEC,KAAK,CAAC;MAAA,OAAK,CAACD,GAAG,yBAAE,IAAI,gCAAJ,IAAI,EAAYC,KAAK,EAAE;IAAA,EAC1B;IACvB,8BAAO,IAAI,gCAAJ,IAAI,EAAY,MAAM,KAAK,CAACL,oBAAoB,CAACG,IAAI,EAAED,aAAa,CAAC;EAC9E;AAkCF;AAAC,mBAhCUI,IAAS,EAAEC,SAGnB,EAAW;EACV,IAAIC,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,EAAE,OAAOA,IAAI,CAACI,GAAG,CAAEC,CAAC,2BAAK,IAAI,4BAAJ,IAAI,EAAUA,CAAC,EAAEJ,SAAS,CAAC,CAAC;EAC5E,IAAID,IAAI,IAAI,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5C,OAAOV,SAAS,CAACU,IAAI,EAAE,SAAkB;MAAA,IAAjB,CAACF,GAAG,EAAEC,KAAK,CAAC;MAClC,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,CAACD,GAAG,EAAEC,KAAK,CAAC;MACtC,IAAIR,mBAAmB,CAACe,IAAI,CAAEC,CAAC,IAAKA,CAAC,KAAKT,GAAG,CAAC,EAAE,OAAO,CAACA,GAAG,EAAEG,SAAS,CAACO,MAAM,CAACT,KAAK,CAAC,CAAC;MACrF,IAAIP,mBAAmB,CAACc,IAAI,CAAEC,CAAC,IAAKA,CAAC,KAAKT,GAAG,CAAC,EAAE,OAAO,CAACA,GAAG,EAAEG,SAAS,CAACQ,MAAM,CAACV,KAAK,CAAC,CAAC;MACrF,OAAO,CAACD,GAAG,yBAAE,IAAI,4BAAJ,IAAI,EAAUC,KAAK,EAAEE,SAAS,EAAE;IAC/C,CAAC,CAAC;EACJ;EACA,OAAOD,IAAI;AACb;AAAC,qBAEUA,IAAS,EAAO;EACzB,8BAAO,IAAI,4BAAJ,IAAI,EAAUA,IAAI,EAAE;IACzBQ,MAAM,EAAGT,KAAK,IAAK;MACjB,IAAIA,KAAK,YAAYhB,SAAS,EAAE,OAAOgB,KAAK,CAACW,OAAO,EAAE;MACtD,OAAOX,KAAK,CAACY,QAAQ,EAAE;IACzB,CAAC;IACDF,MAAM,EAAGV,KAAK,IAAKA,KAAK,CAACY,QAAQ;EACnC,CAAC;AACH;AAAC,qBAEUX,IAAS,EAAO;EACzB,8BAAO,IAAI,4BAAJ,IAAI,EAAUA,IAAI,EAAE;IACzBQ,MAAM,EAAGT,KAAK,IAAKa,MAAM,CAACb,KAAK,CAAC;IAChCU,MAAM,EAAGV,KAAK,IAAK,CAACA;EACtB,CAAC;AACH;AAAC;AAyCH,eAAe,MAAMX,IAAI,SAAUK,eAAe,CAAmC;EAGnF;AACF;AACA;AACA;AACA;EACEoB,WAAW,CACTC,GAAW,EAEX;IAAA,IADA;MAAEC,aAAa,GAAG,KAAK;MAAE,GAAGC;IAA0D,CAAC,uEAAG,CAAC,CAAC;IAE5F;IACA,KAAK,CAACF,GAAG,EAAE;MACTG,uBAAuB,EAAE,IAAI;MAC7BC,kBAAkB,EAAE,CAClBlC,sBAAsB,EAAE,EACxBC,2BAA2B,EAAE,EAC7BC,uBAAuB,CAAEiC,IAAgB,IAAM,IAAGA,IAAI,CAACC,MAAO,EAAC,CAAC,CACjE;MACD,GAAGJ;IACL,CAAC,CAAC;IAAC;MAAA;MAAA;IAAA;IACH,IAAI,CAACD,aAAa,EAAE;MAClB,MAAMM,aAAa,GAAG,IAAI,CAACC,SAAS,EAAE;MACtC,MAAMC,cAAc,GAAGF,aAAa,CAACG,IAAI,CAAC;QAAA,IAAC;UAAEC;QAAY,CAAC;QAAA,OAAKA,WAAW;MAAA,EAAC;MAC3E,0BAAI,qBAAqBJ,aAAa,CAACG,IAAI,CAAC;QAAA,IAAC;UAAEE;QAAU,CAAC;QAAA,OAAKA,SAAS;MAAA,EAAC;MACzE,IAAI,CAACC,QAAQ,CAACC,SAAS,CACrBzC,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAEoC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9E;IACH;IACA,IAAI,CAACM,WAAW,GAAG,IAAI;EACzB;EAEA,MAAMC,YAAY,GAAoB;IAAA;IACpC,oDAAI,qHAAJ,IAAI,qBAAuB,IAAI,CAACR,SAAS,EAAE,CAACE,IAAI,CAAC;MAAA,IAAC;QAAEE;MAAU,CAAC;MAAA,OAAKA,SAAS;IAAA,EAAC;IAC9E,6BAAO,IAAI;EACb;EAEA,MAAMK,WAAW,GAAsB;IACrC,MAAM;MACJN,WAAW,EAAEO,OAAO;MACpBN,SAAS,EAAEO,aAAa;MACxBC,SAAS;MACTC;IACF,CAAC,GAAG,MAAM,IAAI,CAACb,SAAS,EAAE;IAC1B,MAAMc,wBAAwB,GAAGF,SAAS,CACvCG,MAAM,CAAC;MAAA,IAAC;QAAEC;MAAkB,CAAC;MAAA,OAAKH,cAAc,IAAIG,iBAAiB;IAAA,EAAC,CACtEC,MAAM,CACL,CAACC,GAAG,EAAEC,CAAC,KAAMA,CAAC,CAACH,iBAAiB,GAAGE,GAAG,CAACF,iBAAiB,GAAGG,CAAC,GAAGD,GAAI,EACnE;MAAEF,iBAAiB,EAAE,CAAC,CAAC;MAAEN,OAAO,EAAE;IAAE,CAAC,CACtC,CACAA,OAAO;IACV,OAAO;MACLlB,GAAG,EAAE,IAAI,CAAC4B,KAAK;MACfT,aAAa;MACbD,OAAO;MACPI;IACF,CAAC;EACH;AACF"}
1
+ {"version":3,"file":"Node.mjs","names":["BigNumber","genRequestQueuesPolicy","genCombineGetRequestsPolicy","genErrorFormatterPolicy","genVersionCheckPolicy","Node","NodeApi","mapObject","bigIntPropertyNames","numberPropertyNames","NodeTransformed","sendOperationRequest","operationArguments","operationSpec","args","key","value","data","transform","Array","isArray","map","d","some","k","bigInt","number","toFixed","toString","BigInt","constructor","url","ignoreVersion","options","allowInsecureConnection","additionalPolicies","body","reason","statusPromise","getStatus","versionPromise","then","nodeVersion","networkId","pipeline","addPolicy","intAsString","getNetworkId","getNodeInfo","version","nodeNetworkId","protocols","topBlockHeight","consensusProtocolVersion","filter","effectiveAtHeight","reduce","acc","p","$host"],"sources":["../src/Node.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport BigNumber from 'bignumber.js';\nimport { OperationArguments, OperationSpec } from '@azure/core-client';\nimport {\n genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy,\n genVersionCheckPolicy,\n} from './utils/autorest';\nimport { Node as NodeApi, NodeOptionalParams, ErrorModel } from './apis/node';\nimport { mapObject } from './utils/other';\nimport { Encoded } from './utils/encoder';\nimport { ConsensusProtocolVersion } from './tx/builder/constants';\n\nconst bigIntPropertyNames = [\n 'balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount',\n 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal',\n 'responderAmountFinal', 'gasPrice', 'deposit',\n] as const;\n\nconst numberPropertyNames = [\n 'time', 'gas', 'gasUsed', 'nameSalt',\n 'nonce', 'nextNonce', 'height', 'blockHeight', 'topBlockHeight',\n 'ttl', 'nameTtl', 'clientTtl',\n 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight',\n 'version', 'solutions', 'round',\n] as const;\n\nclass NodeTransformed extends NodeApi {\n override async sendOperationRequest(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n ): Promise<any> {\n const args = mapObject(\n operationArguments,\n ([key, value]) => [key, this.#encodeArg(value)],\n ) as OperationArguments;\n return this.#decodeRes(await super.sendOperationRequest(args, operationSpec));\n }\n\n #mapData(data: any, transform: {\n bigInt: (v: any) => any;\n number: (v: any) => any;\n }): unknown {\n if (Array.isArray(data)) return data.map((d) => this.#mapData(d, transform));\n if (data != null && typeof data === 'object') {\n return mapObject(data, ([key, value]) => {\n if (value == null) return [key, value];\n if (bigIntPropertyNames.some((k) => k === key)) return [key, transform.bigInt(value)];\n if (numberPropertyNames.some((k) => k === key)) return [key, transform.number(value)];\n return [key, this.#mapData(value, transform)];\n });\n }\n return data;\n }\n\n #encodeArg(data: any): any {\n return this.#mapData(data, {\n bigInt: (value) => {\n if (value instanceof BigNumber) return value.toFixed();\n return value.toString();\n },\n number: (value) => value.toString(),\n });\n }\n\n #decodeRes(data: any): any {\n return this.#mapData(data, {\n bigInt: (value) => BigInt(value),\n number: (value) => +value,\n });\n }\n}\n\ntype BigIntPropertyNames = typeof bigIntPropertyNames[number];\ntype NumberPropertyNames = typeof numberPropertyNames[number];\ntype PreserveOptional<NewType, OrigType> =\n OrigType extends undefined ? NewType | undefined : NewType;\nexport type TransformNodeType<Type> =\n Type extends (...args: infer Args) => infer Ret\n ? (...args: TransformNodeType<Args>) => TransformNodeType<Ret>\n : Type extends [infer Item, ...infer Rest]\n ? [TransformNodeType<Item>, ...TransformNodeType<Rest>]\n : Type extends Array<infer Item>\n ? Array<TransformNodeType<Item>>\n : Type extends Promise<infer T>\n ? Promise<TransformNodeType<T>>\n : Type extends { [P in any]: any }\n ? {\n [Property in keyof Type]:\n Property extends BigIntPropertyNames\n ? PreserveOptional<bigint, Type[Property]>\n : Property extends NumberPropertyNames\n ? PreserveOptional<number, Type[Property]>\n : Property extends 'txHash'\n ? PreserveOptional<Encoded.TxHash, Type[Property]>\n : Property extends 'bytecode'\n ? PreserveOptional<Encoded.ContractBytearray, Type[Property]>\n : TransformNodeType<Type[Property]>\n }\n : Type;\ntype NodeTransformedApi = new (...args: ConstructorParameters<typeof NodeApi>) => {\n [Name in keyof InstanceType<typeof NodeApi>]:\n Name extends 'pipeline' | 'sendRequest' | 'sendOperationRequest'\n ? NodeApi[Name] : TransformNodeType<NodeApi[Name]>\n};\n\nexport interface NodeInfo {\n url: string;\n nodeNetworkId: string;\n version: string;\n consensusProtocolVersion: ConsensusProtocolVersion;\n}\n\nexport default class Node extends (NodeTransformed as unknown as NodeTransformedApi) {\n #networkIdPromise?: Promise<string>;\n\n /**\n * @param url - Url for node API\n * @param options - Options\n * @param options.ignoreVersion - Don't check node version\n */\n constructor(\n url: string,\n { ignoreVersion = false, ...options }: NodeOptionalParams & { ignoreVersion?: boolean } = {},\n ) {\n // eslint-disable-next-line constructor-super\n super(url, {\n allowInsecureConnection: true,\n additionalPolicies: [\n genRequestQueuesPolicy(),\n genCombineGetRequestsPolicy(),\n genErrorFormatterPolicy((body: ErrorModel) => ` ${body.reason}`),\n ],\n ...options,\n });\n if (!ignoreVersion) {\n const statusPromise = this.getStatus();\n const versionPromise = statusPromise.then(({ nodeVersion }) => nodeVersion);\n this.#networkIdPromise = statusPromise.then(({ networkId }) => networkId);\n this.pipeline.addPolicy(\n genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'),\n );\n }\n this.intAsString = true;\n }\n\n async getNetworkId(): Promise<string> {\n this.#networkIdPromise ??= this.getStatus().then(({ networkId }) => networkId);\n return this.#networkIdPromise;\n }\n\n async getNodeInfo(): Promise<NodeInfo> {\n const {\n nodeVersion: version,\n networkId: nodeNetworkId,\n protocols,\n topBlockHeight,\n } = await this.getStatus();\n const consensusProtocolVersion = protocols\n .filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)\n .reduce(\n (acc, p) => (p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc),\n { effectiveAtHeight: -1, version: 0 },\n )\n .version;\n return {\n url: this.$host,\n nodeNetworkId,\n version,\n consensusProtocolVersion,\n };\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Encoded } from '../utils/encoder';
2
2
  import Node from '../Node';
3
- import CompilerHttp from '../contract/CompilerHttp';
3
+ import CompilerBase from '../contract/compiler/Base';
4
4
  /**
5
5
  * Account is one of the three basic building blocks of an
6
6
  * {@link AeSdk} and provides access to a signing key pair.
@@ -24,7 +24,7 @@ export default abstract class AccountBase {
24
24
  args?: any[];
25
25
  };
26
26
  onNode?: Node;
27
- onCompiler?: CompilerHttp;
27
+ onCompiler?: CompilerBase;
28
28
  aeppOrigin?: string;
29
29
  aeppRpcClientId?: string;
30
30
  }): Promise<Encoded.Transaction>;
@@ -1 +1 @@
1
- {"version":3,"file":"Base.mjs","names":["AccountBase"],"sources":["../../src/account/Base.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 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 { Encoded } from '../utils/encoder';\nimport Node from '../Node';\nimport CompilerHttp from '../contract/CompilerHttp';\n\n/**\n * Account is one of the three basic building blocks of an\n * {@link AeSdk} and provides access to a signing key pair.\n */\nexport default abstract class AccountBase {\n /**\n * Sign encoded transaction\n * @param tx - Transaction to sign\n * @param options - Options\n * @param options.innerTx - Sign as inner transaction for PayingFor\n * @param options.authData - Object with gaMeta params\n * @returns Signed transaction\n */\n abstract signTransaction(\n tx: Encoded.Transaction,\n options: {\n innerTx?: boolean;\n networkId?: string;\n authData?: {\n gasLimit?: number;\n callData?: Encoded.ContractBytearray;\n sourceCode?: string;\n args?: any[];\n };\n onNode?: Node;\n onCompiler?: CompilerHttp;\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Transaction>;\n\n /**\n * Sign message\n * @param message - Message to sign\n * @param options - Options\n * @returns Signature as hex string of Uint8Array\n */\n abstract signMessage(\n message: string,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Sign data blob\n * @param data - Data blob to sign\n * @param options - Options\n * @returns Signed data blob\n */\n abstract sign(data: string | Uint8Array, options?: any): Promise<Uint8Array>;\n\n /**\n * Account address\n */\n readonly address: Encoded.AccountAddress;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,eAAe,MAAeA,WAAW,CAAC"}
1
+ {"version":3,"file":"Base.mjs","names":["AccountBase"],"sources":["../../src/account/Base.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 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 { Encoded } from '../utils/encoder';\nimport Node from '../Node';\nimport CompilerBase from '../contract/compiler/Base';\n\n/**\n * Account is one of the three basic building blocks of an\n * {@link AeSdk} and provides access to a signing key pair.\n */\nexport default abstract class AccountBase {\n /**\n * Sign encoded transaction\n * @param tx - Transaction to sign\n * @param options - Options\n * @param options.innerTx - Sign as inner transaction for PayingFor\n * @param options.authData - Object with gaMeta params\n * @returns Signed transaction\n */\n abstract signTransaction(\n tx: Encoded.Transaction,\n options: {\n innerTx?: boolean;\n networkId?: string;\n authData?: {\n gasLimit?: number;\n callData?: Encoded.ContractBytearray;\n sourceCode?: string;\n args?: any[];\n };\n onNode?: Node;\n onCompiler?: CompilerBase;\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Encoded.Transaction>;\n\n /**\n * Sign message\n * @param message - Message to sign\n * @param options - Options\n * @returns Signature as hex string of Uint8Array\n */\n abstract signMessage(\n message: string,\n options?: {\n aeppOrigin?: string;\n aeppRpcClientId?: string;\n },\n ): Promise<Uint8Array>;\n\n /**\n * Sign data blob\n * @param data - Data blob to sign\n * @param options - Options\n * @returns Signed data blob\n */\n abstract sign(data: string | Uint8Array, options?: any): Promise<Uint8Array>;\n\n /**\n * Account address\n */\n readonly address: Encoded.AccountAddress;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,eAAe,MAAeA,WAAW,CAAC"}
@@ -92,10 +92,11 @@ export default class AccountGeneralized extends AccountBase {
92
92
  return contract._calldata.encode(contract._name, _classPrivateFieldGet(this, _authFun), args);
93
93
  })();
94
94
  const gaMetaTx = await _buildTx(Tag.GaMetaTx, {
95
- tx: buildTx({
95
+ tx: decode(buildTx({
96
+ tag: Tag.SignedTx,
96
97
  encodedTx: decode(tx),
97
98
  signatures: []
98
- }, Tag.SignedTx).rlpEncoded,
99
+ })),
99
100
  gaId: this.address,
100
101
  authData: authCallData,
101
102
  gasLimit,
@@ -103,9 +104,10 @@ export default class AccountGeneralized extends AccountBase {
103
104
  onNode
104
105
  });
105
106
  return buildTx({
107
+ tag: Tag.SignedTx,
106
108
  encodedTx: decode(gaMetaTx),
107
109
  signatures: []
108
- }, Tag.SignedTx).tx;
110
+ });
109
111
  }
110
112
  }
111
113
  //# sourceMappingURL=Generalized.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Generalized.mjs","names":["AccountBase","ArgumentError","InternalError","InvalidAuthDataError","NotImplementedError","decode","getAccount","Contract","_buildTx","Tag","buildTx","AccountGeneralized","constructor","address","sign","signMessage","signTransaction","tx","authData","onCompiler","onNode","callData","sourceCode","args","gasLimit","authCallData","account","kind","authFun","contract","initialize","_calldata","encode","_name","gaMetaTx","GaMetaTx","encodedTx","signatures","SignedTx","rlpEncoded","gaId","nonce"],"sources":["../../src/account/Generalized.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 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 AccountBase from './Base';\nimport {\n ArgumentError,\n InternalError,\n InvalidAuthDataError,\n NotImplementedError,\n} from '../utils/errors';\nimport { decode, Encoded } from '../utils/encoder';\nimport { getAccount } from '../chain';\nimport Contract from '../contract/Contract';\nimport { _buildTx } from '../tx';\nimport { Tag } from '../tx/builder/constants';\nimport { buildTx } from '../tx/builder';\n\n/**\n * Generalized account class\n */\nexport default class AccountGeneralized extends AccountBase {\n override readonly address: Encoded.AccountAddress;\n\n #authFun?: string;\n\n /**\n * @param address - Address of generalized account\n */\n constructor(address: Encoded.AccountAddress) {\n super();\n decode(address);\n this.address = address;\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async sign(): Promise<Uint8Array> {\n throw new NotImplementedError('Can\\'t sign using generalized account');\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signMessage(): Promise<Uint8Array> {\n throw new NotImplementedError('Can\\'t sign using generalized account');\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1],\n ): Promise<Encoded.Transaction> {\n if (authData == null || onCompiler == null || onNode == null) {\n throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);\n }\n const {\n callData, sourceCode, args, gasLimit,\n } = authData;\n\n const authCallData = callData ?? await (async () => {\n if (this.#authFun == null) {\n const account = await getAccount(this.address, { onNode });\n if (account.kind !== 'generalized') {\n throw new ArgumentError('account kind', 'generalized', account.kind);\n }\n this.#authFun = account.authFun;\n }\n if (this.#authFun == null) {\n throw new InternalError('Account in generalised, but authFun not provided');\n }\n\n if (sourceCode == null || args == null) {\n throw new InvalidAuthDataError('Auth data must contain source code and arguments.');\n }\n const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });\n return contract._calldata.encode(contract._name, this.#authFun, args);\n })();\n\n const gaMetaTx = await _buildTx(Tag.GaMetaTx, {\n tx: buildTx({ encodedTx: decode(tx), signatures: [] }, Tag.SignedTx).rlpEncoded,\n gaId: this.address,\n authData: authCallData,\n gasLimit,\n nonce: 0,\n onNode,\n });\n return buildTx({ encodedTx: decode(gaMetaTx), signatures: [] }, Tag.SignedTx).tx;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Generalized.mjs","names":["AccountBase","ArgumentError","InternalError","InvalidAuthDataError","NotImplementedError","decode","getAccount","Contract","_buildTx","Tag","buildTx","AccountGeneralized","constructor","address","sign","signMessage","signTransaction","tx","authData","onCompiler","onNode","callData","sourceCode","args","gasLimit","authCallData","account","kind","authFun","contract","initialize","_calldata","encode","_name","gaMetaTx","GaMetaTx","tag","SignedTx","encodedTx","signatures","gaId","nonce"],"sources":["../../src/account/Generalized.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 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 AccountBase from './Base';\nimport {\n ArgumentError,\n InternalError,\n InvalidAuthDataError,\n NotImplementedError,\n} from '../utils/errors';\nimport { decode, Encoded } from '../utils/encoder';\nimport { getAccount } from '../chain';\nimport Contract from '../contract/Contract';\nimport { _buildTx } from '../tx';\nimport { Tag } from '../tx/builder/constants';\nimport { buildTx } from '../tx/builder';\n\n/**\n * Generalized account class\n */\nexport default class AccountGeneralized extends AccountBase {\n override readonly address: Encoded.AccountAddress;\n\n #authFun?: string;\n\n /**\n * @param address - Address of generalized account\n */\n constructor(address: Encoded.AccountAddress) {\n super();\n decode(address);\n this.address = address;\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async sign(): Promise<Uint8Array> {\n throw new NotImplementedError('Can\\'t sign using generalized account');\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async signMessage(): Promise<Uint8Array> {\n throw new NotImplementedError('Can\\'t sign using generalized account');\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1],\n ): Promise<Encoded.Transaction> {\n if (authData == null || onCompiler == null || onNode == null) {\n throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);\n }\n const {\n callData, sourceCode, args, gasLimit,\n } = authData;\n\n const authCallData = callData ?? await (async () => {\n if (this.#authFun == null) {\n const account = await getAccount(this.address, { onNode });\n if (account.kind !== 'generalized') {\n throw new ArgumentError('account kind', 'generalized', account.kind);\n }\n this.#authFun = account.authFun;\n }\n if (this.#authFun == null) {\n throw new InternalError('Account in generalised, but authFun not provided');\n }\n\n if (sourceCode == null || args == null) {\n throw new InvalidAuthDataError('Auth data must contain source code and arguments.');\n }\n const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });\n return contract._calldata.encode(contract._name, this.#authFun, args);\n })();\n\n const gaMetaTx = await _buildTx(Tag.GaMetaTx, {\n tx: decode(buildTx({ tag: Tag.SignedTx, encodedTx: decode(tx), signatures: [] })),\n gaId: this.address,\n authData: authCallData,\n gasLimit,\n nonce: 0,\n onNode,\n });\n return buildTx({ tag: Tag.SignedTx, encodedTx: decode(gaMetaTx), signatures: [] });\n }\n}\n"],"mappings":"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"}
@@ -69,9 +69,10 @@ export default class AccountLedger extends AccountBase {
69
69
  }, Promise.resolve(_Buffer.alloc(0)));
70
70
  const signatures = [response.subarray(0, 64)];
71
71
  return buildTx({
72
+ tag: Tag.SignedTx,
72
73
  encodedTx: rawTx,
73
74
  signatures
74
- }, Tag.SignedTx).tx;
75
+ });
75
76
  }
76
77
  async signMessage(messageStr) {
77
78
  let offset = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"Ledger.mjs","names":["AccountBase","ArgumentError","NotImplementedError","decode","buildTx","Tag","CLA","GET_ADDRESS","SIGN_TRANSACTION","GET_APP_CONFIGURATION","SIGN_PERSONAL_MESSAGE","AccountLedger","constructor","transport","index","address","scrambleKey","decorateAppAPIMethods","sign","signTransaction","tx","innerTx","networkId","rawTx","offset","headerLength","networkIdBuffer","from","toSend","length","maxChunkSize","chunkSize","buffer","alloc","bufferOffset","writeUInt32BE","writeUInt8","copy","push","response","reduce","previous","data","i","send","Promise","resolve","signatures","subarray","encodedTx","SignedTx","signMessage","messageStr","message"],"sources":["../../src/account/Ledger.ts"],"sourcesContent":["import type Transport from '@ledgerhq/hw-transport';\nimport AccountBase from './Base';\nimport { ArgumentError, NotImplementedError } from '../utils/errors';\nimport { decode, Encoded } from '../utils/encoder';\nimport { buildTx } from '../tx/builder';\nimport { Tag } from '../tx/builder/constants';\n\nexport const CLA = 0xe0;\nexport const GET_ADDRESS = 0x02;\nexport const SIGN_TRANSACTION = 0x04;\nexport const GET_APP_CONFIGURATION = 0x06;\nexport const SIGN_PERSONAL_MESSAGE = 0x08;\n\n/**\n * Ledger wallet account class\n */\nexport default class AccountLedger extends AccountBase {\n readonly transport: Transport;\n\n override readonly address: Encoded.AccountAddress;\n\n readonly index: number;\n\n /**\n * @param transport - Connection to Ledger to use\n * @param index - Index of account\n * @param address - Address of account\n */\n constructor(transport: Transport, index: number, address: Encoded.AccountAddress) {\n super();\n this.transport = transport;\n this.index = index;\n this.address = address;\n const scrambleKey = 'w0w';\n transport.decorateAppAPIMethods(this, ['signTransaction', 'signMessage'], scrambleKey);\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async sign(): Promise<Uint8Array> {\n throw new NotImplementedError('RAW signing using Ledger HW');\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { innerTx, networkId }: { innerTx?: boolean; networkId?: string } = {},\n ): Promise<Encoded.Transaction> {\n if (innerTx != null) throw new NotImplementedError('innerTx option in AccountLedger');\n if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n\n const rawTx = decode(tx);\n let offset = 0;\n const headerLength = 4 + 1 + 4;\n const networkIdBuffer = Buffer.from(networkId);\n const toSend = [];\n while (offset !== rawTx.length) {\n const maxChunkSize = offset === 0 ? 150 - headerLength - networkIdBuffer.length : 150;\n const chunkSize = offset + maxChunkSize > rawTx.length\n ? rawTx.length - offset : maxChunkSize;\n const buffer = Buffer.alloc(\n offset === 0 ? headerLength + networkIdBuffer.length + chunkSize : chunkSize,\n );\n if (offset === 0) {\n let bufferOffset = buffer.writeUInt32BE(this.index, 0);\n bufferOffset = buffer.writeUInt32BE(rawTx.length, bufferOffset);\n bufferOffset = buffer.writeUInt8(networkIdBuffer.length, bufferOffset);\n bufferOffset += networkIdBuffer.copy(\n buffer,\n bufferOffset,\n 0,\n networkIdBuffer.length,\n );\n rawTx.copy(buffer, bufferOffset, 0, 150 - bufferOffset);\n } else {\n rawTx.copy(buffer, 0, offset, offset + chunkSize);\n }\n toSend.push(buffer);\n offset += chunkSize;\n }\n const response = await toSend.reduce(\n async (previous, data, i) => {\n await previous;\n return this.transport.send(\n CLA,\n SIGN_TRANSACTION,\n i === 0 ? 0x00 : 0x80,\n 0x00,\n data,\n );\n },\n Promise.resolve(Buffer.alloc(0)),\n );\n const signatures = [response.subarray(0, 64)];\n\n return buildTx({ encodedTx: rawTx, signatures }, Tag.SignedTx).tx;\n }\n\n override async signMessage(messageStr: string): Promise<Uint8Array> {\n let offset = 0;\n const message = Buffer.from(messageStr);\n const toSend = [];\n while (offset !== message.length) {\n const maxChunkSize = offset === 0 ? 150 - 4 - 4 : 150;\n const chunkSize = offset + maxChunkSize > message.length\n ? message.length - offset : maxChunkSize;\n const buffer = Buffer.alloc(offset === 0 ? 4 + 4 + chunkSize : chunkSize);\n if (offset === 0) {\n buffer.writeUInt32BE(this.index, 0);\n buffer.writeUInt32BE(message.length, 4);\n message.copy(buffer, 4 + 4, offset, offset + chunkSize);\n } else {\n message.copy(buffer, 0, offset, offset + chunkSize);\n }\n toSend.push(buffer);\n offset += chunkSize;\n }\n const response = await toSend.reduce(\n async (previous, data, i) => {\n await previous;\n return this.transport.send(\n CLA,\n SIGN_PERSONAL_MESSAGE,\n i === 0 ? 0x00 : 0x80,\n 0x00,\n data,\n );\n },\n Promise.resolve(Buffer.alloc(0)),\n );\n return response.subarray(0, 64);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Ledger.mjs","names":["AccountBase","ArgumentError","NotImplementedError","decode","buildTx","Tag","CLA","GET_ADDRESS","SIGN_TRANSACTION","GET_APP_CONFIGURATION","SIGN_PERSONAL_MESSAGE","AccountLedger","constructor","transport","index","address","scrambleKey","decorateAppAPIMethods","sign","signTransaction","tx","innerTx","networkId","rawTx","offset","headerLength","networkIdBuffer","from","toSend","length","maxChunkSize","chunkSize","buffer","alloc","bufferOffset","writeUInt32BE","writeUInt8","copy","push","response","reduce","previous","data","i","send","Promise","resolve","signatures","subarray","tag","SignedTx","encodedTx","signMessage","messageStr","message"],"sources":["../../src/account/Ledger.ts"],"sourcesContent":["import type Transport from '@ledgerhq/hw-transport';\nimport AccountBase from './Base';\nimport { ArgumentError, NotImplementedError } from '../utils/errors';\nimport { decode, Encoded } from '../utils/encoder';\nimport { buildTx } from '../tx/builder';\nimport { Tag } from '../tx/builder/constants';\n\nexport const CLA = 0xe0;\nexport const GET_ADDRESS = 0x02;\nexport const SIGN_TRANSACTION = 0x04;\nexport const GET_APP_CONFIGURATION = 0x06;\nexport const SIGN_PERSONAL_MESSAGE = 0x08;\n\n/**\n * Ledger wallet account class\n */\nexport default class AccountLedger extends AccountBase {\n readonly transport: Transport;\n\n override readonly address: Encoded.AccountAddress;\n\n readonly index: number;\n\n /**\n * @param transport - Connection to Ledger to use\n * @param index - Index of account\n * @param address - Address of account\n */\n constructor(transport: Transport, index: number, address: Encoded.AccountAddress) {\n super();\n this.transport = transport;\n this.index = index;\n this.address = address;\n const scrambleKey = 'w0w';\n transport.decorateAppAPIMethods(this, ['signTransaction', 'signMessage'], scrambleKey);\n }\n\n // eslint-disable-next-line class-methods-use-this\n override async sign(): Promise<Uint8Array> {\n throw new NotImplementedError('RAW signing using Ledger HW');\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { innerTx, networkId }: { innerTx?: boolean; networkId?: string } = {},\n ): Promise<Encoded.Transaction> {\n if (innerTx != null) throw new NotImplementedError('innerTx option in AccountLedger');\n if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n\n const rawTx = decode(tx);\n let offset = 0;\n const headerLength = 4 + 1 + 4;\n const networkIdBuffer = Buffer.from(networkId);\n const toSend = [];\n while (offset !== rawTx.length) {\n const maxChunkSize = offset === 0 ? 150 - headerLength - networkIdBuffer.length : 150;\n const chunkSize = offset + maxChunkSize > rawTx.length\n ? rawTx.length - offset : maxChunkSize;\n const buffer = Buffer.alloc(\n offset === 0 ? headerLength + networkIdBuffer.length + chunkSize : chunkSize,\n );\n if (offset === 0) {\n let bufferOffset = buffer.writeUInt32BE(this.index, 0);\n bufferOffset = buffer.writeUInt32BE(rawTx.length, bufferOffset);\n bufferOffset = buffer.writeUInt8(networkIdBuffer.length, bufferOffset);\n bufferOffset += networkIdBuffer.copy(\n buffer,\n bufferOffset,\n 0,\n networkIdBuffer.length,\n );\n rawTx.copy(buffer, bufferOffset, 0, 150 - bufferOffset);\n } else {\n rawTx.copy(buffer, 0, offset, offset + chunkSize);\n }\n toSend.push(buffer);\n offset += chunkSize;\n }\n const response = await toSend.reduce(\n async (previous, data, i) => {\n await previous;\n return this.transport.send(\n CLA,\n SIGN_TRANSACTION,\n i === 0 ? 0x00 : 0x80,\n 0x00,\n data,\n );\n },\n Promise.resolve(Buffer.alloc(0)),\n );\n const signatures = [response.subarray(0, 64)];\n\n return buildTx({ tag: Tag.SignedTx, encodedTx: rawTx, signatures });\n }\n\n override async signMessage(messageStr: string): Promise<Uint8Array> {\n let offset = 0;\n const message = Buffer.from(messageStr);\n const toSend = [];\n while (offset !== message.length) {\n const maxChunkSize = offset === 0 ? 150 - 4 - 4 : 150;\n const chunkSize = offset + maxChunkSize > message.length\n ? message.length - offset : maxChunkSize;\n const buffer = Buffer.alloc(offset === 0 ? 4 + 4 + chunkSize : chunkSize);\n if (offset === 0) {\n buffer.writeUInt32BE(this.index, 0);\n buffer.writeUInt32BE(message.length, 4);\n message.copy(buffer, 4 + 4, offset, offset + chunkSize);\n } else {\n message.copy(buffer, 0, offset, offset + chunkSize);\n }\n toSend.push(buffer);\n offset += chunkSize;\n }\n const response = await toSend.reduce(\n async (previous, data, i) => {\n await previous;\n return this.transport.send(\n CLA,\n SIGN_PERSONAL_MESSAGE,\n i === 0 ? 0x00 : 0x80,\n 0x00,\n data,\n );\n },\n Promise.resolve(Buffer.alloc(0)),\n );\n return response.subarray(0, 64);\n }\n}\n"],"mappings":"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"}
@@ -70,9 +70,10 @@ export default class AccountMemory extends AccountBase {
70
70
  const txWithNetworkId = concatBuffers([_Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);
71
71
  const signatures = [await this.sign(txWithNetworkId, options)];
72
72
  return buildTx({
73
+ tag: Tag.SignedTx,
73
74
  encodedTx: rlpBinaryTx,
74
75
  signatures
75
- }, Tag.SignedTx).tx;
76
+ });
76
77
  }
77
78
  async signMessage(message, options) {
78
79
  return this.sign(messageToHash(message), options);
@@ -1 +1 @@
1
- {"version":3,"file":"Memory.mjs","names":["AccountBase","generateKeyPairFromSecret","sign","generateKeyPair","hash","messageToHash","ArgumentError","decode","encode","Encoding","concatBuffers","buildTx","Tag","secretKeys","WeakMap","AccountMemory","constructor","secretKey","from","length","set","address","get","publicKey","AccountAddress","generate","data","options","signTransaction","tx","innerTx","networkId","prefixes","push","rlpBinaryTx","txWithNetworkId","join","signatures","encodedTx","SignedTx","signMessage","message"],"sources":["../../src/account/Memory.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 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 AccountBase from './Base';\nimport {\n generateKeyPairFromSecret, sign, generateKeyPair, hash, messageToHash,\n} from '../utils/crypto';\nimport { ArgumentError } from '../utils/errors';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../utils/encoder';\nimport { concatBuffers } from '../utils/other';\nimport { buildTx } from '../tx/builder';\nimport { Tag } from '../tx/builder/constants';\n\nconst secretKeys = new WeakMap();\n\n/**\n * In-memory account class\n */\nexport default class AccountMemory extends AccountBase {\n override readonly address: Encoded.AccountAddress;\n\n /**\n * @param secretKey - Secret key\n */\n constructor(secretKey: string | Uint8Array) {\n super();\n secretKey = typeof secretKey === 'string' ? Buffer.from(secretKey, 'hex') : secretKey;\n if (secretKey.length !== 64) {\n throw new ArgumentError('secretKey', '64 bytes', secretKey.length);\n }\n secretKeys.set(this, secretKey);\n this.address = encode(\n generateKeyPairFromSecret(secretKeys.get(this)).publicKey,\n Encoding.AccountAddress,\n );\n }\n\n /**\n * Generates a new AccountMemory using a random secret key\n */\n static generate(): AccountMemory {\n return new AccountMemory(generateKeyPair().secretKey);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override async sign(data: string | Uint8Array, options?: any): Promise<Uint8Array> {\n return sign(data, secretKeys.get(this));\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { innerTx, networkId, ...options }: { innerTx?: boolean; networkId?: string } = {},\n ): Promise<Encoded.Transaction> {\n if (networkId == null) {\n throw new ArgumentError('networkId', 'provided', networkId);\n }\n const prefixes = [networkId];\n if (innerTx === true) prefixes.push('inner_tx');\n const rlpBinaryTx = decode(tx);\n const txWithNetworkId = concatBuffers([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);\n\n const signatures = [await this.sign(txWithNetworkId, options)];\n return buildTx({ encodedTx: rlpBinaryTx, signatures }, Tag.SignedTx).tx;\n }\n\n override async signMessage(message: string, options?: any): Promise<Uint8Array> {\n return this.sign(messageToHash(message), options);\n }\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA,OAgBOA,WAAW;AAAA,SAEhBC,yBAAyB,EAAEC,IAAI,EAAEC,eAAe,EAAEC,IAAI,EAAEC,aAAa;AAAA,SAE9DC,aAAa;AAAA,SAEpBC,MAAM,EAAEC,MAAM,EAAWC,QAAQ;AAAA,SAE1BC,aAAa;AAAA,SACbC,OAAO;AAAA,SACPC,GAAG;AAEZ,MAAMC,UAAU,GAAG,IAAIC,OAAO,EAAE;;AAEhC;AACA;AACA;AACA,eAAe,MAAMC,aAAa,SAASf,WAAW,CAAC;EAGrD;AACF;AACA;EACEgB,WAAW,CAACC,SAA8B,EAAE;IAC1C,KAAK,EAAE;IACPA,SAAS,GAAG,OAAOA,SAAS,KAAK,QAAQ,GAAG,QAAOC,IAAI,CAACD,SAAS,EAAE,KAAK,CAAC,GAAGA,SAAS;IACrF,IAAIA,SAAS,CAACE,MAAM,KAAK,EAAE,EAAE;MAC3B,MAAM,IAAIb,aAAa,CAAC,WAAW,EAAE,UAAU,EAAEW,SAAS,CAACE,MAAM,CAAC;IACpE;IACAN,UAAU,CAACO,GAAG,CAAC,IAAI,EAAEH,SAAS,CAAC;IAC/B,IAAI,CAACI,OAAO,GAAGb,MAAM,CACnBP,yBAAyB,CAACY,UAAU,CAACS,GAAG,CAAC,IAAI,CAAC,CAAC,CAACC,SAAS,EACzDd,QAAQ,CAACe,cAAc,CACxB;EACH;;EAEA;AACF;AACA;EACE,OAAOC,QAAQ,GAAkB;IAC/B,OAAO,IAAIV,aAAa,CAACZ,eAAe,EAAE,CAACc,SAAS,CAAC;EACvD;;EAEA;EACA,MAAef,IAAI,CAACwB,IAAyB,EAAEC,OAAa,EAAuB;IACjF,OAAOzB,IAAI,CAACwB,IAAI,EAAEb,UAAU,CAACS,GAAG,CAAC,IAAI,CAAC,CAAC;EACzC;EAEA,MAAeM,eAAe,CAC5BC,EAAuB,EAEO;IAAA,IAD9B;MAAEC,OAAO;MAAEC,SAAS;MAAE,GAAGJ;IAAmD,CAAC,uEAAG,CAAC,CAAC;IAElF,IAAII,SAAS,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIzB,aAAa,CAAC,WAAW,EAAE,UAAU,EAAEyB,SAAS,CAAC;IAC7D;IACA,MAAMC,QAAQ,GAAG,CAACD,SAAS,CAAC;IAC5B,IAAID,OAAO,KAAK,IAAI,EAAEE,QAAQ,CAACC,IAAI,CAAC,UAAU,CAAC;IAC/C,MAAMC,WAAW,GAAG3B,MAAM,CAACsB,EAAE,CAAC;IAC9B,MAAMM,eAAe,GAAGzB,aAAa,CAAC,CAAC,QAAOQ,IAAI,CAACc,QAAQ,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAEhC,IAAI,CAAC8B,WAAW,CAAC,CAAC,CAAC;IAE3F,MAAMG,UAAU,GAAG,CAAC,MAAM,IAAI,CAACnC,IAAI,CAACiC,eAAe,EAAER,OAAO,CAAC,CAAC;IAC9D,OAAOhB,OAAO,CAAC;MAAE2B,SAAS,EAAEJ,WAAW;MAAEG;IAAW,CAAC,EAAEzB,GAAG,CAAC2B,QAAQ,CAAC,CAACV,EAAE;EACzE;EAEA,MAAeW,WAAW,CAACC,OAAe,EAAEd,OAAa,EAAuB;IAC9E,OAAO,IAAI,CAACzB,IAAI,CAACG,aAAa,CAACoC,OAAO,CAAC,EAAEd,OAAO,CAAC;EACnD;AACF"}
1
+ {"version":3,"file":"Memory.mjs","names":["AccountBase","generateKeyPairFromSecret","sign","generateKeyPair","hash","messageToHash","ArgumentError","decode","encode","Encoding","concatBuffers","buildTx","Tag","secretKeys","WeakMap","AccountMemory","constructor","secretKey","from","length","set","address","get","publicKey","AccountAddress","generate","data","options","signTransaction","tx","innerTx","networkId","prefixes","push","rlpBinaryTx","txWithNetworkId","join","signatures","tag","SignedTx","encodedTx","signMessage","message"],"sources":["../../src/account/Memory.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 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 AccountBase from './Base';\nimport {\n generateKeyPairFromSecret, sign, generateKeyPair, hash, messageToHash,\n} from '../utils/crypto';\nimport { ArgumentError } from '../utils/errors';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../utils/encoder';\nimport { concatBuffers } from '../utils/other';\nimport { buildTx } from '../tx/builder';\nimport { Tag } from '../tx/builder/constants';\n\nconst secretKeys = new WeakMap();\n\n/**\n * In-memory account class\n */\nexport default class AccountMemory extends AccountBase {\n override readonly address: Encoded.AccountAddress;\n\n /**\n * @param secretKey - Secret key\n */\n constructor(secretKey: string | Uint8Array) {\n super();\n secretKey = typeof secretKey === 'string' ? Buffer.from(secretKey, 'hex') : secretKey;\n if (secretKey.length !== 64) {\n throw new ArgumentError('secretKey', '64 bytes', secretKey.length);\n }\n secretKeys.set(this, secretKey);\n this.address = encode(\n generateKeyPairFromSecret(secretKeys.get(this)).publicKey,\n Encoding.AccountAddress,\n );\n }\n\n /**\n * Generates a new AccountMemory using a random secret key\n */\n static generate(): AccountMemory {\n return new AccountMemory(generateKeyPair().secretKey);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n override async sign(data: string | Uint8Array, options?: any): Promise<Uint8Array> {\n return sign(data, secretKeys.get(this));\n }\n\n override async signTransaction(\n tx: Encoded.Transaction,\n { innerTx, networkId, ...options }: { innerTx?: boolean; networkId?: string } = {},\n ): Promise<Encoded.Transaction> {\n if (networkId == null) {\n throw new ArgumentError('networkId', 'provided', networkId);\n }\n const prefixes = [networkId];\n if (innerTx === true) prefixes.push('inner_tx');\n const rlpBinaryTx = decode(tx);\n const txWithNetworkId = concatBuffers([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);\n\n const signatures = [await this.sign(txWithNetworkId, options)];\n return buildTx({ tag: Tag.SignedTx, encodedTx: rlpBinaryTx, signatures });\n }\n\n override async signMessage(message: string, options?: any): Promise<Uint8Array> {\n return this.sign(messageToHash(message), options);\n }\n}\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA,OAgBOA,WAAW;AAAA,SAEhBC,yBAAyB,EAAEC,IAAI,EAAEC,eAAe,EAAEC,IAAI,EAAEC,aAAa;AAAA,SAE9DC,aAAa;AAAA,SAEpBC,MAAM,EAAEC,MAAM,EAAWC,QAAQ;AAAA,SAE1BC,aAAa;AAAA,SACbC,OAAO;AAAA,SACPC,GAAG;AAEZ,MAAMC,UAAU,GAAG,IAAIC,OAAO,EAAE;;AAEhC;AACA;AACA;AACA,eAAe,MAAMC,aAAa,SAASf,WAAW,CAAC;EAGrD;AACF;AACA;EACEgB,WAAW,CAACC,SAA8B,EAAE;IAC1C,KAAK,EAAE;IACPA,SAAS,GAAG,OAAOA,SAAS,KAAK,QAAQ,GAAG,QAAOC,IAAI,CAACD,SAAS,EAAE,KAAK,CAAC,GAAGA,SAAS;IACrF,IAAIA,SAAS,CAACE,MAAM,KAAK,EAAE,EAAE;MAC3B,MAAM,IAAIb,aAAa,CAAC,WAAW,EAAE,UAAU,EAAEW,SAAS,CAACE,MAAM,CAAC;IACpE;IACAN,UAAU,CAACO,GAAG,CAAC,IAAI,EAAEH,SAAS,CAAC;IAC/B,IAAI,CAACI,OAAO,GAAGb,MAAM,CACnBP,yBAAyB,CAACY,UAAU,CAACS,GAAG,CAAC,IAAI,CAAC,CAAC,CAACC,SAAS,EACzDd,QAAQ,CAACe,cAAc,CACxB;EACH;;EAEA;AACF;AACA;EACE,OAAOC,QAAQ,GAAkB;IAC/B,OAAO,IAAIV,aAAa,CAACZ,eAAe,EAAE,CAACc,SAAS,CAAC;EACvD;;EAEA;EACA,MAAef,IAAI,CAACwB,IAAyB,EAAEC,OAAa,EAAuB;IACjF,OAAOzB,IAAI,CAACwB,IAAI,EAAEb,UAAU,CAACS,GAAG,CAAC,IAAI,CAAC,CAAC;EACzC;EAEA,MAAeM,eAAe,CAC5BC,EAAuB,EAEO;IAAA,IAD9B;MAAEC,OAAO;MAAEC,SAAS;MAAE,GAAGJ;IAAmD,CAAC,uEAAG,CAAC,CAAC;IAElF,IAAII,SAAS,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIzB,aAAa,CAAC,WAAW,EAAE,UAAU,EAAEyB,SAAS,CAAC;IAC7D;IACA,MAAMC,QAAQ,GAAG,CAACD,SAAS,CAAC;IAC5B,IAAID,OAAO,KAAK,IAAI,EAAEE,QAAQ,CAACC,IAAI,CAAC,UAAU,CAAC;IAC/C,MAAMC,WAAW,GAAG3B,MAAM,CAACsB,EAAE,CAAC;IAC9B,MAAMM,eAAe,GAAGzB,aAAa,CAAC,CAAC,QAAOQ,IAAI,CAACc,QAAQ,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAEhC,IAAI,CAAC8B,WAAW,CAAC,CAAC,CAAC;IAE3F,MAAMG,UAAU,GAAG,CAAC,MAAM,IAAI,CAACnC,IAAI,CAACiC,eAAe,EAAER,OAAO,CAAC,CAAC;IAC9D,OAAOhB,OAAO,CAAC;MAAE2B,GAAG,EAAE1B,GAAG,CAAC2B,QAAQ;MAAEC,SAAS,EAAEN,WAAW;MAAEG;IAAW,CAAC,CAAC;EAC3E;EAEA,MAAeI,WAAW,CAACC,OAAe,EAAEf,OAAa,EAAuB;IAC9E,OAAO,IAAI,CAACzB,IAAI,CAACG,aAAa,CAACqC,OAAO,CAAC,EAAEf,OAAO,CAAC;EACnD;AACF"}
package/es/aens.d.ts CHANGED
@@ -196,7 +196,7 @@ export declare function aensPreclaim(name: AensName, options: AensPreclaimOption
196
196
  commitmentId: string;
197
197
  claim: (opts?: Parameters<typeof aensClaim>[2]) => ReturnType<typeof aensClaim>;
198
198
  }>>;
199
- interface AensPreclaimOptions extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>, SendOptions, AensClaimOptions {
199
+ interface AensPreclaimOptions extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>, SendOptions, Omit<AensClaimOptions, 'version'> {
200
200
  }
201
201
  /**
202
202
  * Bid to name auction
package/es/aens.mjs CHANGED
@@ -303,8 +303,12 @@ export async function aensPreclaim(name, options) {
303
303
  salt,
304
304
  commitmentId,
305
305
  async claim(opts) {
306
+ const {
307
+ version,
308
+ ...otherOptions
309
+ } = options;
306
310
  return aensClaim(name, salt, {
307
- ...options,
311
+ ...otherOptions,
308
312
  ...opts
309
313
  });
310
314
  }