@aeternity/aepp-sdk 10.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +15 -14
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +13 -40
  5. package/dist/aepp-sdk.browser-script.js.map +1 -1
  6. package/dist/aepp-sdk.browser.js +1 -1
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +1 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/AeSdk.d.ts +37 -0
  11. package/es/AeSdk.mjs +81 -0
  12. package/es/AeSdk.mjs.map +1 -0
  13. package/es/AeSdkAepp.d.ts +69 -0
  14. package/es/AeSdkAepp.mjs +175 -0
  15. package/es/AeSdkAepp.mjs.map +1 -0
  16. package/es/AeSdkBase.d.ts +212 -0
  17. package/es/AeSdkBase.mjs +310 -0
  18. package/es/AeSdkBase.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +103 -0
  20. package/es/AeSdkWallet.mjs +322 -0
  21. package/es/AeSdkWallet.mjs.map +1 -0
  22. package/es/Node.d.ts +44 -0
  23. package/es/Node.mjs +141 -0
  24. package/es/Node.mjs.map +1 -0
  25. package/es/account/Base.d.ts +65 -0
  26. package/es/account/Base.mjs +123 -0
  27. package/es/account/Base.mjs.map +1 -0
  28. package/es/account/Memory.d.ts +25 -0
  29. package/es/account/Memory.mjs +81 -0
  30. package/es/account/Memory.mjs.map +1 -0
  31. package/es/account/Rpc.d.ts +27 -0
  32. package/es/account/Rpc.mjs +79 -0
  33. package/es/account/Rpc.mjs.map +1 -0
  34. package/es/aens.d.ts +209 -0
  35. package/es/aens.mjs +332 -0
  36. package/es/aens.mjs.map +1 -0
  37. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  39. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  42. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  45. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  47. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  48. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  51. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  52. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  54. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  55. package/es/aepp-wallet-communication/schema.d.ts +118 -0
  56. package/es/aepp-wallet-communication/schema.mjs +214 -0
  57. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  58. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  60. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  61. package/es/apis/compiler/compiler.d.ts +92 -0
  62. package/es/apis/compiler/compiler.mjs +576 -0
  63. package/es/apis/compiler/compiler.mjs.map +1 -0
  64. package/es/apis/compiler/index.d.ts +2 -0
  65. package/es/apis/compiler/index.mjs +3 -0
  66. package/es/apis/compiler/index.mjs.map +1 -0
  67. package/es/apis/compiler/models/index.d.ts +248 -0
  68. package/es/apis/compiler/models/index.mjs +48 -0
  69. package/es/apis/compiler/models/index.mjs.map +1 -0
  70. package/es/apis/compiler/models/mappers.d.ts +23 -0
  71. package/es/apis/compiler/models/mappers.mjs +585 -0
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  73. package/es/apis/compiler/models/parameters.d.ts +13 -0
  74. package/es/apis/compiler/models/parameters.mjs +71 -0
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  76. package/es/apis/node/index.d.ts +2 -0
  77. package/es/apis/node/index.mjs +3 -0
  78. package/es/apis/node/index.mjs.map +1 -0
  79. package/es/apis/node/models/index.d.ts +1061 -0
  80. package/es/apis/node/models/index.mjs +2 -0
  81. package/es/apis/node/models/index.mjs.map +1 -0
  82. package/es/apis/node/models/mappers.d.ts +95 -0
  83. package/es/apis/node/models/mappers.mjs +4164 -0
  84. package/es/apis/node/models/mappers.mjs.map +1 -0
  85. package/es/apis/node/models/parameters.d.ts +17 -0
  86. package/es/apis/node/models/parameters.mjs +165 -0
  87. package/es/apis/node/models/parameters.mjs.map +1 -0
  88. package/es/apis/node/node.d.ts +215 -0
  89. package/es/apis/node/node.mjs +1165 -0
  90. package/es/apis/node/node.mjs.map +1 -0
  91. package/es/chain.d.ts +220 -0
  92. package/es/chain.mjs +524 -0
  93. package/es/chain.mjs.map +1 -0
  94. package/es/channel/handlers.d.ts +34 -0
  95. package/es/channel/{handlers.js → handlers.mjs} +163 -130
  96. package/es/channel/handlers.mjs.map +1 -0
  97. package/es/channel/index.d.ts +634 -0
  98. package/es/channel/index.mjs +978 -0
  99. package/es/channel/index.mjs.map +1 -0
  100. package/es/channel/internal.d.ts +100 -0
  101. package/es/channel/internal.mjs +328 -0
  102. package/es/channel/internal.mjs.map +1 -0
  103. package/es/contract/Compiler.d.ts +17 -0
  104. package/es/contract/Compiler.mjs +67 -0
  105. package/es/contract/Compiler.mjs.map +1 -0
  106. package/es/contract/aci.d.ts +125 -0
  107. package/es/contract/aci.mjs +496 -0
  108. package/es/contract/aci.mjs.map +1 -0
  109. package/es/contract/ga.d.ts +68 -0
  110. package/es/contract/ga.mjs +190 -0
  111. package/es/contract/ga.mjs.map +1 -0
  112. package/es/contract/methods.d.ts +68 -0
  113. package/es/contract/methods.mjs +101 -0
  114. package/es/contract/methods.mjs.map +1 -0
  115. package/es/index.d.ts +32 -0
  116. package/es/index.mjs +49 -0
  117. package/es/index.mjs.map +1 -0
  118. package/es/oracle.d.ts +154 -0
  119. package/es/oracle.mjs +288 -0
  120. package/es/oracle.mjs.map +1 -0
  121. package/es/spend.d.ts +61 -0
  122. package/es/spend.mjs +122 -0
  123. package/es/spend.mjs.map +1 -0
  124. package/es/tx/builder/constants.d.ts +41 -0
  125. package/es/tx/builder/constants.mjs +100 -0
  126. package/es/tx/builder/constants.mjs.map +1 -0
  127. package/es/tx/builder/field-types.d.ts +62 -0
  128. package/es/tx/builder/field-types.mjs +126 -0
  129. package/es/tx/builder/field-types.mjs.map +1 -0
  130. package/es/tx/builder/helpers.d.ts +131 -0
  131. package/es/tx/builder/helpers.mjs +223 -0
  132. package/es/tx/builder/helpers.mjs.map +1 -0
  133. package/es/tx/builder/index.d.ts +75 -0
  134. package/es/tx/builder/index.mjs +424 -0
  135. package/es/tx/builder/index.mjs.map +1 -0
  136. package/es/tx/builder/schema.d.ts +350 -0
  137. package/es/tx/builder/schema.mjs +320 -0
  138. package/es/tx/builder/schema.mjs.map +1 -0
  139. package/es/tx/index.d.ts +63 -0
  140. package/es/tx/index.mjs +209 -0
  141. package/es/tx/index.mjs.map +1 -0
  142. package/es/tx/min-fee.d.ts +20 -0
  143. package/es/tx/min-fee.mjs +148 -0
  144. package/es/tx/min-fee.mjs.map +1 -0
  145. package/es/tx/validator.d.ts +19 -0
  146. package/es/tx/validator.mjs +240 -0
  147. package/es/tx/validator.mjs.map +1 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  149. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  151. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  152. package/es/typings/bip32-path/index.d.mjs +2 -0
  153. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  154. package/es/typings/blakejs/index.d.mjs +2 -0
  155. package/es/typings/blakejs/index.d.mjs.map +1 -0
  156. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  157. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  158. package/es/utils/amount-formatter.d.ts +42 -0
  159. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +38 -44
  160. package/es/utils/amount-formatter.mjs.map +1 -0
  161. package/es/utils/autorest.d.ts +6 -0
  162. package/es/utils/autorest.mjs +97 -0
  163. package/es/utils/autorest.mjs.map +1 -0
  164. package/es/utils/bignumber.d.ts +13 -0
  165. package/es/utils/bignumber.mjs +23 -0
  166. package/es/utils/bignumber.mjs.map +1 -0
  167. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  168. package/es/utils/{bytes.js → bytes.mjs} +26 -22
  169. package/es/utils/bytes.mjs.map +1 -0
  170. package/es/utils/crypto.d.ts +103 -0
  171. package/es/utils/crypto.mjs +221 -0
  172. package/es/utils/crypto.mjs.map +1 -0
  173. package/es/utils/encoder.d.ts +26 -0
  174. package/es/utils/encoder.mjs +102 -0
  175. package/es/utils/encoder.mjs.map +1 -0
  176. package/es/utils/errors.d.ts +481 -0
  177. package/es/utils/errors.mjs +882 -0
  178. package/es/utils/errors.mjs.map +1 -0
  179. package/es/utils/hd-wallet.d.ts +34 -0
  180. package/es/utils/hd-wallet.mjs +122 -0
  181. package/es/utils/hd-wallet.mjs.map +1 -0
  182. package/es/utils/json-big.d.ts +5 -0
  183. package/es/utils/json-big.mjs +41 -0
  184. package/es/utils/json-big.mjs.map +1 -0
  185. package/es/utils/keystore.d.ts +51 -0
  186. package/es/utils/keystore.mjs +145 -0
  187. package/es/utils/keystore.mjs.map +1 -0
  188. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  189. package/es/utils/{mptree.js → mptree.mjs} +33 -25
  190. package/es/utils/mptree.mjs.map +1 -0
  191. package/es/utils/other.d.ts +14 -0
  192. package/es/utils/other.mjs +28 -0
  193. package/es/utils/other.mjs.map +1 -0
  194. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  195. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  196. package/es/utils/semver-satisfies.mjs.map +1 -0
  197. package/es/utils/string.d.ts +24 -0
  198. package/es/utils/{string.js → string.mjs} +9 -11
  199. package/es/utils/string.mjs.map +1 -0
  200. package/package.json +67 -64
  201. package/src/AeSdk.ts +65 -0
  202. package/src/AeSdkAepp.ts +167 -0
  203. package/src/AeSdkBase.ts +320 -0
  204. package/src/AeSdkWallet.ts +332 -0
  205. package/src/Node.ts +167 -0
  206. package/src/account/Base.ts +114 -0
  207. package/src/account/Memory.ts +83 -0
  208. package/src/account/Rpc.ts +67 -0
  209. package/src/aens.ts +391 -0
  210. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  211. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  212. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  213. package/{es/utils/crypto-ts.js → src/aepp-wallet-communication/connection-proxy.ts} +16 -9
  214. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  215. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  216. package/src/aepp-wallet-communication/schema.ts +181 -0
  217. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  218. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  219. package/src/apis/compiler/compiler.ts +585 -0
  220. package/src/apis/compiler/index.ts +2 -0
  221. package/src/apis/compiler/models/index.ts +301 -0
  222. package/src/apis/compiler/models/mappers.ts +583 -0
  223. package/src/apis/compiler/models/parameters.ts +93 -0
  224. package/src/apis/node/code-model-v4.yaml +10046 -0
  225. package/src/apis/node/index.ts +2 -0
  226. package/src/apis/node/models/index.ts +1253 -0
  227. package/src/apis/node/models/mappers.ts +4278 -0
  228. package/src/apis/node/models/parameters.ts +188 -0
  229. package/src/apis/node/node.ts +1299 -0
  230. package/src/chain.ts +444 -0
  231. package/src/channel/{handlers.js → handlers.ts} +238 -143
  232. package/src/channel/index.ts +991 -0
  233. package/src/channel/internal.ts +345 -0
  234. package/src/contract/Compiler.ts +66 -0
  235. package/src/contract/aci.ts +529 -0
  236. package/src/contract/ga.ts +178 -0
  237. package/src/contract/methods.ts +118 -0
  238. package/src/index.ts +51 -0
  239. package/src/oracle.ts +342 -0
  240. package/src/spend.ts +152 -0
  241. package/src/tx/builder/constants.ts +96 -0
  242. package/src/tx/builder/field-types.ts +111 -0
  243. package/src/tx/builder/helpers.ts +253 -0
  244. package/src/tx/builder/index.ts +394 -0
  245. package/src/tx/builder/schema.ts +771 -0
  246. package/src/tx/index.ts +199 -0
  247. package/src/tx/min-fee.ts +136 -0
  248. package/src/tx/validator.ts +226 -0
  249. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  250. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  251. package/src/typings/bip32-path/index.d.ts +33 -0
  252. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  253. package/src/utils/amount-formatter.ts +29 -41
  254. package/src/utils/autorest.ts +90 -0
  255. package/src/utils/bignumber.ts +9 -19
  256. package/src/utils/bytes.ts +15 -16
  257. package/src/utils/crypto.ts +217 -0
  258. package/src/utils/encoder.ts +98 -0
  259. package/src/utils/errors.ts +817 -0
  260. package/src/utils/hd-wallet.ts +134 -0
  261. package/src/utils/json-big.ts +26 -0
  262. package/src/utils/keystore.ts +179 -0
  263. package/src/utils/mptree.ts +26 -20
  264. package/src/utils/other.ts +28 -43
  265. package/src/utils/string.ts +8 -10
  266. package/CHANGELOG.md +0 -1603
  267. package/es/account/base.js +0 -169
  268. package/es/account/base.js.map +0 -1
  269. package/es/account/memory.js +0 -84
  270. package/es/account/memory.js.map +0 -1
  271. package/es/account/multiple.js +0 -178
  272. package/es/account/multiple.js.map +0 -1
  273. package/es/ae/aens.js +0 -408
  274. package/es/ae/aens.js.map +0 -1
  275. package/es/ae/aepp.js +0 -45
  276. package/es/ae/aepp.js.map +0 -1
  277. package/es/ae/contract.js +0 -312
  278. package/es/ae/contract.js.map +0 -1
  279. package/es/ae/index.js +0 -206
  280. package/es/ae/index.js.map +0 -1
  281. package/es/ae/oracle.js +0 -322
  282. package/es/ae/oracle.js.map +0 -1
  283. package/es/ae/universal.js +0 -45
  284. package/es/ae/universal.js.map +0 -1
  285. package/es/ae/wallet.js +0 -50
  286. package/es/ae/wallet.js.map +0 -1
  287. package/es/amount-formatter.d.ts +0 -58
  288. package/es/bignumber.d.ts +0 -24
  289. package/es/chain/index.js +0 -256
  290. package/es/chain/index.js.map +0 -1
  291. package/es/chain/node.js +0 -394
  292. package/es/chain/node.js.map +0 -1
  293. package/es/channel/handlers.js.map +0 -1
  294. package/es/channel/index.js +0 -980
  295. package/es/channel/index.js.map +0 -1
  296. package/es/channel/internal.js +0 -266
  297. package/es/channel/internal.js.map +0 -1
  298. package/es/contract/aci/helpers.js +0 -298
  299. package/es/contract/aci/helpers.js.map +0 -1
  300. package/es/contract/aci/index.js +0 -361
  301. package/es/contract/aci/index.js.map +0 -1
  302. package/es/contract/aci/transformation.js +0 -66
  303. package/es/contract/aci/transformation.js.map +0 -1
  304. package/es/contract/compiler.js +0 -244
  305. package/es/contract/compiler.js.map +0 -1
  306. package/es/contract/ga/helpers.js +0 -22
  307. package/es/contract/ga/helpers.js.map +0 -1
  308. package/es/contract/ga/index.js +0 -170
  309. package/es/contract/ga/index.js.map +0 -1
  310. package/es/contract/index.js +0 -162
  311. package/es/contract/index.js.map +0 -1
  312. package/es/crypto-ts.d.ts +0 -9
  313. package/es/index.js +0 -57
  314. package/es/index.js.map +0 -1
  315. package/es/node-pool/index.js +0 -187
  316. package/es/node-pool/index.js.map +0 -1
  317. package/es/node.js +0 -132
  318. package/es/node.js.map +0 -1
  319. package/es/other.d.ts +0 -31
  320. package/es/string.d.ts +0 -26
  321. package/es/tx/builder/helpers.js +0 -305
  322. package/es/tx/builder/helpers.js.map +0 -1
  323. package/es/tx/builder/index.js +0 -595
  324. package/es/tx/builder/index.js.map +0 -1
  325. package/es/tx/builder/schema.js +0 -814
  326. package/es/tx/builder/schema.js.map +0 -1
  327. package/es/tx/index.js +0 -300
  328. package/es/tx/index.js.map +0 -1
  329. package/es/tx/tx-object.js +0 -276
  330. package/es/tx/tx-object.js.map +0 -1
  331. package/es/tx/tx.js +0 -937
  332. package/es/tx/tx.js.map +0 -1
  333. package/es/tx/validator.js +0 -208
  334. package/es/tx/validator.js.map +0 -1
  335. package/es/typings/blakejs/index.d.js +0 -2
  336. package/es/typings/blakejs/index.d.js.map +0 -1
  337. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -131
  338. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  339. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -184
  340. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  341. package/es/utils/aepp-wallet-communication/connection/index.js +0 -84
  342. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  343. package/es/utils/aepp-wallet-communication/content-script-bridge.js +0 -97
  344. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  345. package/es/utils/aepp-wallet-communication/helpers.js +0 -103
  346. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  347. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -329
  348. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  349. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -270
  350. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  351. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -533
  352. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  353. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  354. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  355. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -109
  356. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  357. package/es/utils/amount-formatter.js.map +0 -1
  358. package/es/utils/async-init.js +0 -67
  359. package/es/utils/async-init.js.map +0 -1
  360. package/es/utils/bignumber.js +0 -28
  361. package/es/utils/bignumber.js.map +0 -1
  362. package/es/utils/bytes.js.map +0 -1
  363. package/es/utils/crypto-ts.js.map +0 -1
  364. package/es/utils/crypto.js +0 -304
  365. package/es/utils/crypto.js.map +0 -1
  366. package/es/utils/hd-wallet.js +0 -112
  367. package/es/utils/hd-wallet.js.map +0 -1
  368. package/es/utils/json-big.js +0 -45
  369. package/es/utils/json-big.js.map +0 -1
  370. package/es/utils/keystore.js +0 -228
  371. package/es/utils/keystore.js.map +0 -1
  372. package/es/utils/mptree.js.map +0 -1
  373. package/es/utils/other.js +0 -43
  374. package/es/utils/other.js.map +0 -1
  375. package/es/utils/semver-satisfies.js.map +0 -1
  376. package/es/utils/string.js.map +0 -1
  377. package/es/utils/swagger.js +0 -132
  378. package/es/utils/swagger.js.map +0 -1
  379. package/src/account/base.js +0 -153
  380. package/src/account/memory.js +0 -78
  381. package/src/account/multiple.js +0 -154
  382. package/src/ae/aens.js +0 -366
  383. package/src/ae/aepp.js +0 -45
  384. package/src/ae/contract.js +0 -285
  385. package/src/ae/index.js +0 -167
  386. package/src/ae/oracle.js +0 -296
  387. package/src/ae/universal.js +0 -47
  388. package/src/ae/wallet.js +0 -50
  389. package/src/chain/index.js +0 -250
  390. package/src/chain/node.js +0 -293
  391. package/src/channel/index.js +0 -898
  392. package/src/channel/internal.js +0 -231
  393. package/src/contract/aci/index.js +0 -317
  394. package/src/contract/aci/transformation.js +0 -72
  395. package/src/contract/compiler.js +0 -195
  396. package/src/contract/ga/helpers.js +0 -17
  397. package/src/contract/ga/index.js +0 -147
  398. package/src/contract/index.js +0 -163
  399. package/src/index.js +0 -90
  400. package/src/node-pool/index.js +0 -171
  401. package/src/node.js +0 -118
  402. package/src/tx/builder/helpers.js +0 -325
  403. package/src/tx/builder/index.js +0 -460
  404. package/src/tx/builder/schema.js +0 -1211
  405. package/src/tx/index.js +0 -301
  406. package/src/tx/tx-object.js +0 -186
  407. package/src/tx/tx.js +0 -622
  408. package/src/tx/validator.js +0 -161
  409. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -114
  410. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -161
  411. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  412. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -85
  413. package/src/utils/aepp-wallet-communication/helpers.js +0 -70
  414. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -268
  415. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -223
  416. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -390
  417. package/src/utils/aepp-wallet-communication/schema.js +0 -108
  418. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -91
  419. package/src/utils/async-init.js +0 -41
  420. package/src/utils/crypto.js +0 -312
  421. package/src/utils/hd-wallet.js +0 -115
  422. package/src/utils/json-big.js +0 -26
  423. package/src/utils/keystore.js +0 -223
  424. package/src/utils/swagger.js +0 -133
@@ -0,0 +1,322 @@
1
+ import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
2
+ import { v4 as uuid } from '@aeternity/uuid';
3
+ import AeSdk from "./AeSdk.mjs";
4
+ import verifyTransaction from "./tx/validator.mjs";
5
+ import RpcClient from "./aepp-wallet-communication/rpc/RpcClient.mjs";
6
+ import { METHODS, RPC_STATUS, SUBSCRIPTION_TYPES, RpcBroadcastError, RpcInvalidTransactionError, RpcNotAuthorizeError, RpcPermissionDenyError, RpcUnsupportedProtocolError } from "./aepp-wallet-communication/schema.mjs";
7
+ import { UnknownRpcClientError } from "./utils/errors.mjs";
8
+ import { RPC_VERSION } from "./aepp-wallet-communication/rpc/types.mjs";
9
+ import jsonBig from "./utils/json-big.mjs";
10
+
11
+ /**
12
+ * Contain functionality for aepp interaction and managing multiple aepps
13
+ */
14
+ export default class AeSdkWallet extends AeSdk {
15
+ /**
16
+ * @param options - Options
17
+ * @param options.name - Wallet name
18
+ * @param options.id - Wallet id
19
+ * @param options.type - Wallet type
20
+ * @param options.onConnection - Call-back function for incoming AEPP connection
21
+ * @param options.onSubscription - Call-back function for incoming AEPP account subscription
22
+ * @param options.onSign - Call-back function for incoming AEPP sign request
23
+ * @param options.onAskAccounts - Call-back function for incoming AEPP get address request
24
+ * @param options.onMessageSign - Call-back function for incoming AEPP sign message request
25
+ * @param options.onDisconnect - Call-back function for disconnect event
26
+ */
27
+ constructor(_ref) {
28
+ let {
29
+ name,
30
+ id,
31
+ type,
32
+ onConnection,
33
+ onSubscription,
34
+ onSign,
35
+ onDisconnect,
36
+ onAskAccounts,
37
+ onMessageSign,
38
+ ...options
39
+ } = _ref;
40
+ super(options);
41
+ this.onConnection = onConnection;
42
+ this.onSubscription = onSubscription;
43
+ this.onSign = onSign;
44
+ this.onDisconnect = onDisconnect;
45
+ this.onAskAccounts = onAskAccounts;
46
+ this.onMessageSign = onMessageSign;
47
+ this._clients = new Map();
48
+ this.name = name;
49
+ this.id = id;
50
+ this._type = type;
51
+ }
52
+
53
+ _pushAccountsToApps() {
54
+ Array.from(this._clients.keys()).filter(clientId => this._isRpcClientSubscribed(clientId)).map(clientId => this._getClient(clientId).rpc).forEach(client => client.notify(METHODS.updateAddress, this.getAccounts()));
55
+ }
56
+
57
+ selectAccount(address) {
58
+ super.selectAccount(address);
59
+
60
+ this._pushAccountsToApps();
61
+ }
62
+
63
+ async addAccount(account, options) {
64
+ await super.addAccount(account, options);
65
+
66
+ this._pushAccountsToApps();
67
+ }
68
+
69
+ _getNode() {
70
+ this.ensureNodeConnected();
71
+ return {
72
+ node: {
73
+ url: this.api.url,
74
+ name: this.selectedNodeName
75
+ }
76
+ };
77
+ }
78
+
79
+ async selectNode(name) {
80
+ super.selectNode(name);
81
+ const networkId = await this.getNetworkId();
82
+ Array.from(this._clients.keys()).filter(clientId => this._isRpcClientConnected(clientId)).map(clientId => this._getClient(clientId)).forEach(client => {
83
+ client.rpc.notify(METHODS.updateNetwork, {
84
+ networkId,
85
+ ...(client.connectNode && this._getNode())
86
+ });
87
+ });
88
+ }
89
+
90
+ _getClient(clientId) {
91
+ const client = this._clients.get(clientId);
92
+
93
+ if (client == null) throw new UnknownRpcClientError(clientId);
94
+ return client;
95
+ }
96
+
97
+ _isRpcClientSubscribed(clientId) {
98
+ return this._isRpcClientConnected(clientId) && this._getClient(clientId).addressSubscription.size !== 0;
99
+ }
100
+
101
+ _isRpcClientConnected(clientId) {
102
+ return RPC_STATUS.CONNECTED === this._getClient(clientId).status && this._getClient(clientId).rpc.connection.isConnected();
103
+ }
104
+
105
+ _disconnectRpcClient(clientId) {
106
+ const client = this._getClient(clientId);
107
+
108
+ client.rpc.connection.disconnect();
109
+ client.status = RPC_STATUS.DISCONNECTED;
110
+ client.addressSubscription = new Set();
111
+ }
112
+ /**
113
+ * Remove specific RpcClient by ID
114
+ * @param id - Client ID
115
+ */
116
+
117
+
118
+ removeRpcClient(id) {
119
+ this._disconnectRpcClient(id);
120
+
121
+ this._clients.delete(id);
122
+ }
123
+ /**
124
+ * Add new client by AEPP connection
125
+ * @param clientConnection - AEPP connection object
126
+ * @returns Client ID
127
+ */
128
+
129
+
130
+ addRpcClient(clientConnection) {
131
+ // @TODO detect if aepp has some history based on origin????
132
+ // if yes use this instance for connection
133
+ const id = uuid();
134
+ let disconnectParams;
135
+ const client = {
136
+ id,
137
+ status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST,
138
+ addressSubscription: new Set(),
139
+ connectNode: false,
140
+ rpc: new RpcClient(clientConnection, () => {
141
+ this._clients.delete(id);
142
+
143
+ this.onDisconnect(id, disconnectParams); // also related info
144
+ }, {
145
+ [METHODS.closeConnection]: params => {
146
+ disconnectParams = params;
147
+
148
+ this._disconnectRpcClient(id);
149
+ },
150
+ // Store client info and prepare two fn for each client `connect` and `denyConnection`
151
+ // which automatically prepare and send response for that client
152
+ [METHODS.connect]: async (_ref2, origin) => {
153
+ let {
154
+ name,
155
+ version,
156
+ icons,
157
+ connectNode
158
+ } = _ref2;
159
+ if (version !== RPC_VERSION) throw new RpcUnsupportedProtocolError();
160
+ await this.onConnection(id, {
161
+ name,
162
+ icons,
163
+ connectNode
164
+ }, origin);
165
+ client.status = RPC_STATUS.CONNECTED;
166
+ client.connectNode = connectNode;
167
+ return { ...(await this.getWalletInfo()),
168
+ ...(connectNode && this._getNode())
169
+ };
170
+ },
171
+ [METHODS.subscribeAddress]: async (_ref3, origin) => {
172
+ let {
173
+ type,
174
+ value
175
+ } = _ref3;
176
+ if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
177
+ await this.onSubscription(id, {
178
+ type,
179
+ value
180
+ }, origin);
181
+
182
+ switch (type) {
183
+ case SUBSCRIPTION_TYPES.subscribe:
184
+ client.addressSubscription.add(value);
185
+ break;
186
+
187
+ case SUBSCRIPTION_TYPES.unsubscribe:
188
+ client.addressSubscription.delete(value);
189
+ break;
190
+ }
191
+
192
+ return {
193
+ subscription: Array.from(client.addressSubscription),
194
+ address: this.getAccounts()
195
+ };
196
+ },
197
+ [METHODS.address]: async (params, origin) => {
198
+ if (!this._isRpcClientSubscribed(id)) throw new RpcNotAuthorizeError();
199
+ await this.onAskAccounts(id, params, origin);
200
+ return this.addresses();
201
+ },
202
+ [METHODS.sign]: async (_ref4, origin) => {
203
+ var _onAccount, _context, _overrides$onAccount, _overrides$tx;
204
+
205
+ let {
206
+ tx,
207
+ onAccount,
208
+ returnSigned
209
+ } = _ref4;
210
+ if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
211
+ (_onAccount = onAccount) !== null && _onAccount !== void 0 ? _onAccount : onAccount = await this.address();
212
+
213
+ if (!_includesInstanceProperty(_context = this.addresses()).call(_context, onAccount)) {
214
+ throw new RpcPermissionDenyError(onAccount);
215
+ }
216
+
217
+ const overrides = await this.onSign(id, {
218
+ tx,
219
+ returnSigned,
220
+ onAccount
221
+ }, origin);
222
+ onAccount = (_overrides$onAccount = overrides === null || overrides === void 0 ? void 0 : overrides.onAccount) !== null && _overrides$onAccount !== void 0 ? _overrides$onAccount : onAccount;
223
+ tx = (_overrides$tx = overrides === null || overrides === void 0 ? void 0 : overrides.tx) !== null && _overrides$tx !== void 0 ? _overrides$tx : tx;
224
+
225
+ if (returnSigned) {
226
+ return {
227
+ signedTransaction: await this.signTransaction(tx, {
228
+ onAccount
229
+ })
230
+ };
231
+ }
232
+
233
+ try {
234
+ return jsonBig.parse(jsonBig.stringify({
235
+ transactionHash: await this.send(tx, {
236
+ onAccount,
237
+ verify: false
238
+ })
239
+ }));
240
+ } catch (error) {
241
+ const validation = await verifyTransaction(tx, this.api);
242
+ if (validation.length > 0) throw new RpcInvalidTransactionError(validation);
243
+ throw new RpcBroadcastError(error.message);
244
+ }
245
+ },
246
+ [METHODS.signMessage]: async (_ref5, origin) => {
247
+ var _onAccount2, _context2, _overrides$onAccount2;
248
+
249
+ let {
250
+ message,
251
+ onAccount
252
+ } = _ref5;
253
+ if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();
254
+ (_onAccount2 = onAccount) !== null && _onAccount2 !== void 0 ? _onAccount2 : onAccount = await this.address();
255
+
256
+ if (!_includesInstanceProperty(_context2 = this.addresses()).call(_context2, onAccount)) {
257
+ throw new RpcPermissionDenyError(onAccount);
258
+ }
259
+
260
+ const overrides = await this.onMessageSign(id, {
261
+ message,
262
+ onAccount
263
+ }, origin);
264
+ onAccount = (_overrides$onAccount2 = overrides === null || overrides === void 0 ? void 0 : overrides.onAccount) !== null && _overrides$onAccount2 !== void 0 ? _overrides$onAccount2 : onAccount;
265
+ return {
266
+ // TODO: fix signMessage return type
267
+ signature: await this.signMessage(message, {
268
+ onAccount,
269
+ returnHex: true
270
+ })
271
+ };
272
+ }
273
+ })
274
+ };
275
+
276
+ this._clients.set(id, client);
277
+
278
+ return id;
279
+ }
280
+ /**
281
+ * Send shareWalletInfo message to notify AEPP about wallet
282
+ * @param clientId - ID of RPC client send message to
283
+ */
284
+
285
+
286
+ async shareWalletInfo(clientId) {
287
+ this._getClient(clientId).rpc.notify(METHODS.readyToConnect, await this.getWalletInfo());
288
+ }
289
+ /**
290
+ * Get Wallet info object
291
+ * @returns Object with wallet information
292
+ */
293
+
294
+
295
+ async getWalletInfo() {
296
+ return {
297
+ id: this.id,
298
+ name: this.name,
299
+ networkId: await this.getNetworkId(),
300
+ origin: window.location.origin,
301
+ type: this._type
302
+ };
303
+ }
304
+ /**
305
+ * Get Wallet accounts
306
+ * @returns Object with accounts information (\{ connected: Object, current: Object \})
307
+ */
308
+
309
+
310
+ getAccounts() {
311
+ return {
312
+ current: this.selectedAddress != null ? {
313
+ [this.selectedAddress]: {}
314
+ } : {},
315
+ connected: this.addresses().filter(a => a !== this.selectedAddress).reduce((acc, a) => ({ ...acc,
316
+ [a]: {}
317
+ }), {})
318
+ };
319
+ }
320
+
321
+ }
322
+ //# sourceMappingURL=AeSdkWallet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AeSdkWallet.mjs","names":["v4","uuid","AeSdk","verifyTransaction","RpcClient","METHODS","RPC_STATUS","SUBSCRIPTION_TYPES","RpcBroadcastError","RpcInvalidTransactionError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcUnsupportedProtocolError","UnknownRpcClientError","RPC_VERSION","jsonBig","AeSdkWallet","constructor","name","id","type","onConnection","onSubscription","onSign","onDisconnect","onAskAccounts","onMessageSign","options","_clients","Map","_type","_pushAccountsToApps","Array","from","keys","filter","clientId","_isRpcClientSubscribed","map","_getClient","rpc","forEach","client","notify","updateAddress","getAccounts","selectAccount","address","addAccount","account","_getNode","ensureNodeConnected","node","url","api","selectedNodeName","selectNode","networkId","getNetworkId","_isRpcClientConnected","updateNetwork","connectNode","get","addressSubscription","size","CONNECTED","status","connection","isConnected","_disconnectRpcClient","disconnect","DISCONNECTED","Set","removeRpcClient","delete","addRpcClient","clientConnection","disconnectParams","WAITING_FOR_CONNECTION_REQUEST","closeConnection","params","connect","origin","version","icons","getWalletInfo","subscribeAddress","value","subscribe","add","unsubscribe","subscription","addresses","sign","tx","onAccount","returnSigned","overrides","signedTransaction","signTransaction","parse","stringify","transactionHash","send","verify","error","validation","length","message","signMessage","signature","returnHex","set","shareWalletInfo","readyToConnect","window","location","current","selectedAddress","connected","a","reduce","acc"],"sources":["../src/AeSdkWallet.ts"],"sourcesContent":["import { v4 as uuid } from '@aeternity/uuid'\nimport AeSdk from './AeSdk'\nimport { Account } from './AeSdkBase'\nimport verifyTransaction from './tx/validator'\nimport RpcClient from './aepp-wallet-communication/rpc/RpcClient'\nimport {\n METHODS, RPC_STATUS, SUBSCRIPTION_TYPES, WALLET_TYPE,\n RpcBroadcastError, RpcInvalidTransactionError,\n RpcNotAuthorizeError, RpcPermissionDenyError, RpcUnsupportedProtocolError\n} from './aepp-wallet-communication/schema'\nimport { UnknownRpcClientError } from './utils/errors'\nimport AccountBase from './account/Base'\nimport BrowserConnection from './aepp-wallet-communication/connection/Browser'\nimport {\n Accounts,\n AeppApi,\n Network,\n RPC_VERSION,\n WalletApi,\n WalletInfo\n} from './aepp-wallet-communication/rpc/types'\nimport { EncodedData } from './utils/encoder'\nimport jsonBig from './utils/json-big'\n\ntype RpcClientWallet = RpcClient<AeppApi, WalletApi>\n\ntype OnConnection = (\n clientId: string, params: Omit<Parameters<WalletApi[METHODS.connect]>[0], 'version'>, origin: string\n) => void\n\ntype OnSubscription = (\n clientId: string, params: Parameters<WalletApi[METHODS.subscribeAddress]>[0], origin: string\n) => void\n\ntype OnSign = (\n clientId: string, params: Parameters<WalletApi[METHODS.sign]>[0], origin: string\n) => Promise<{ tx?: EncodedData<'tx'>, onAccount?: Account } | undefined> | Promise<void>\n\ntype OnDisconnect = (\n clientId: string, params: Parameters<WalletApi[METHODS.closeConnection]>[0]\n) => void\n\ntype OnAskAccounts = (\n clientId: string, params: undefined, origin: string\n) => void\n\ntype OnMessageSign = (\n clientId: string, params: Parameters<WalletApi[METHODS.signMessage]>[0], origin: string\n) => Promise<{ onAccount?: Account } | undefined> | Promise<void>\n\ninterface RpcClientsInfo {\n id: string\n status: RPC_STATUS\n connectNode: boolean\n addressSubscription: Set<'connected' | 'current'>\n rpc: RpcClientWallet\n}\n\n/**\n * Contain functionality for aepp interaction and managing multiple aepps\n */\nexport default class AeSdkWallet extends AeSdk {\n id: string\n _type: WALLET_TYPE\n name: string\n _clients: Map<string, RpcClientsInfo>\n onConnection: OnConnection\n onSubscription: OnSubscription\n onSign: OnSign\n onDisconnect: OnDisconnect\n onAskAccounts: OnAskAccounts\n onMessageSign: OnMessageSign\n\n /**\n * @param options - Options\n * @param options.name - Wallet name\n * @param options.id - Wallet id\n * @param options.type - Wallet type\n * @param options.onConnection - Call-back function for incoming AEPP connection\n * @param options.onSubscription - Call-back function for incoming AEPP account subscription\n * @param options.onSign - Call-back function for incoming AEPP sign request\n * @param options.onAskAccounts - Call-back function for incoming AEPP get address request\n * @param options.onMessageSign - Call-back function for incoming AEPP sign message request\n * @param options.onDisconnect - Call-back function for disconnect event\n */\n constructor ({\n name,\n id,\n type,\n onConnection,\n onSubscription,\n onSign,\n onDisconnect,\n onAskAccounts,\n onMessageSign,\n ...options\n }: {\n id: string\n type: WALLET_TYPE\n name: string\n onConnection: OnConnection\n onSubscription: OnSubscription\n onSign: OnSign\n onDisconnect: OnDisconnect\n onAskAccounts: OnAskAccounts\n onMessageSign: OnMessageSign\n } & ConstructorParameters<typeof AeSdk>[0]) {\n super(options)\n this.onConnection = onConnection\n this.onSubscription = onSubscription\n this.onSign = onSign\n this.onDisconnect = onDisconnect\n this.onAskAccounts = onAskAccounts\n this.onMessageSign = onMessageSign\n this._clients = new Map()\n this.name = name\n this.id = id\n this._type = type\n }\n\n _pushAccountsToApps (): void {\n Array.from(this._clients.keys())\n .filter(clientId => this._isRpcClientSubscribed(clientId))\n .map(clientId => this._getClient(clientId).rpc)\n .forEach(client => client.notify(METHODS.updateAddress, this.getAccounts()))\n }\n\n selectAccount (address: EncodedData<'ak'>): void {\n super.selectAccount(address)\n this._pushAccountsToApps()\n }\n\n async addAccount (\n account: AccountBase,\n options?: Parameters<AeSdk['addAccount']>[1]\n ): Promise<void> {\n await super.addAccount(account, options)\n this._pushAccountsToApps()\n }\n\n _getNode (): { node: Network['node'] } {\n this.ensureNodeConnected()\n return { node: { url: this.api.url, name: this.selectedNodeName } }\n }\n\n async selectNode (name: string): Promise<void> {\n super.selectNode(name)\n const networkId = await this.getNetworkId()\n Array.from(this._clients.keys())\n .filter(clientId => this._isRpcClientConnected(clientId))\n .map(clientId => this._getClient(clientId))\n .forEach(client => {\n client.rpc.notify(METHODS.updateNetwork, {\n networkId,\n ...client.connectNode && this._getNode()\n })\n })\n }\n\n _getClient (clientId: string): RpcClientsInfo {\n const client = this._clients.get(clientId)\n if (client == null) throw new UnknownRpcClientError(clientId)\n return client\n }\n\n _isRpcClientSubscribed (clientId: string): boolean {\n return this._isRpcClientConnected(clientId) &&\n this._getClient(clientId).addressSubscription.size !== 0\n }\n\n _isRpcClientConnected (clientId: string): boolean {\n return RPC_STATUS.CONNECTED === this._getClient(clientId).status &&\n this._getClient(clientId).rpc.connection.isConnected()\n }\n\n _disconnectRpcClient (clientId: string): void {\n const client = this._getClient(clientId)\n client.rpc.connection.disconnect()\n client.status = RPC_STATUS.DISCONNECTED\n client.addressSubscription = new Set()\n }\n\n /**\n * Remove specific RpcClient by ID\n * @param id - Client ID\n */\n removeRpcClient (id: string): void {\n this._disconnectRpcClient(id)\n this._clients.delete(id)\n }\n\n /**\n * Add new client by AEPP connection\n * @param clientConnection - AEPP connection object\n * @returns Client ID\n */\n addRpcClient (clientConnection: BrowserConnection): string {\n // @TODO detect if aepp has some history based on origin????\n // if yes use this instance for connection\n const id = uuid()\n let disconnectParams: any\n const client: RpcClientsInfo = {\n id,\n status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST,\n addressSubscription: new Set(),\n connectNode: false,\n rpc: new RpcClient<AeppApi, WalletApi>(\n clientConnection,\n () => {\n this._clients.delete(id)\n this.onDisconnect(id, disconnectParams) // also related info\n }, {\n [METHODS.closeConnection]: (params) => {\n disconnectParams = params\n this._disconnectRpcClient(id)\n },\n // Store client info and prepare two fn for each client `connect` and `denyConnection`\n // which automatically prepare and send response for that client\n [METHODS.connect]: async ({ name, version, icons, connectNode }, origin) => {\n if (version !== RPC_VERSION) throw new RpcUnsupportedProtocolError()\n\n await this.onConnection(id, { name, icons, connectNode }, origin)\n client.status = RPC_STATUS.CONNECTED\n client.connectNode = connectNode\n return {\n ...await this.getWalletInfo(),\n ...connectNode && this._getNode()\n }\n },\n [METHODS.subscribeAddress]: async ({ type, value }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError()\n\n await this.onSubscription(id, { type, value }, origin)\n\n switch (type) {\n case SUBSCRIPTION_TYPES.subscribe:\n client.addressSubscription.add(value)\n break\n case SUBSCRIPTION_TYPES.unsubscribe:\n client.addressSubscription.delete(value)\n break\n }\n\n return {\n subscription: Array.from(client.addressSubscription),\n address: this.getAccounts()\n }\n },\n [METHODS.address]: async (params, origin) => {\n if (!this._isRpcClientSubscribed(id)) throw new RpcNotAuthorizeError()\n await this.onAskAccounts(id, params, origin)\n return this.addresses()\n },\n [METHODS.sign]: async ({ tx, onAccount, returnSigned }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError()\n onAccount ??= await this.address()\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount)\n }\n\n const overrides = await this.onSign(id, { tx, returnSigned, onAccount }, origin)\n onAccount = overrides?.onAccount ?? onAccount\n tx = overrides?.tx ?? tx\n if (returnSigned) {\n return { signedTransaction: await this.signTransaction(tx, { onAccount }) }\n }\n try {\n return jsonBig.parse(jsonBig.stringify({\n transactionHash: await this.send(tx, { onAccount, verify: false })\n }))\n } catch (error) {\n const validation = await verifyTransaction(tx, this.api)\n if (validation.length > 0) throw new RpcInvalidTransactionError(validation)\n throw new RpcBroadcastError(error.message)\n }\n },\n [METHODS.signMessage]: async ({ message, onAccount }, origin) => {\n if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError()\n onAccount ??= await this.address()\n if (!this.addresses().includes(onAccount)) {\n throw new RpcPermissionDenyError(onAccount)\n }\n\n const overrides = await this.onMessageSign(id, { message, onAccount }, origin)\n onAccount = overrides?.onAccount ?? onAccount\n return {\n // TODO: fix signMessage return type\n signature: await this.signMessage(message, { onAccount, returnHex: true }) as\n unknown as string\n }\n }\n })\n }\n this._clients.set(id, client)\n return id\n }\n\n /**\n * Send shareWalletInfo message to notify AEPP about wallet\n * @param clientId - ID of RPC client send message to\n */\n async shareWalletInfo (clientId: string): Promise<void> {\n this._getClient(clientId).rpc.notify(METHODS.readyToConnect, await this.getWalletInfo())\n }\n\n /**\n * Get Wallet info object\n * @returns Object with wallet information\n */\n async getWalletInfo (): Promise<WalletInfo> {\n return {\n id: this.id,\n name: this.name,\n networkId: await this.getNetworkId(),\n origin: window.location.origin,\n type: this._type\n }\n }\n\n /**\n * Get Wallet accounts\n * @returns Object with accounts information (\\{ connected: Object, current: Object \\})\n */\n getAccounts (): Accounts {\n return {\n current: this.selectedAddress != null ? { [this.selectedAddress]: {} } : {},\n connected: this.addresses()\n .filter((a) => a !== this.selectedAddress)\n .reduce((acc, a) => ({ ...acc, [a]: {} }), {})\n }\n }\n}\n"],"mappings":";AAAA,SAASA,EAAE,IAAIC,IAAf,QAA2B,iBAA3B;OACOC,K;OAEAC,iB;OACAC,S;SAELC,O,EAASC,U,EAAYC,kB,EACrBC,iB,EAAmBC,0B,EACnBC,oB,EAAsBC,sB,EAAwBC,2B;SAEvCC,qB;SAOPC,W;OAKKC,O;;AAoCP;AACA;AACA;AACA,eAAe,MAAMC,WAAN,SAA0Bd,KAA1B,CAAgC;EAY7C;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEe,WAAW,OAqBiC;IAAA,IArB/B;MACXC,IADW;MAEXC,EAFW;MAGXC,IAHW;MAIXC,YAJW;MAKXC,cALW;MAMXC,MANW;MAOXC,YAPW;MAQXC,aARW;MASXC,aATW;MAUX,GAAGC;IAVQ,CAqB+B;IAC1C,MAAMA,OAAN;IACA,KAAKN,YAAL,GAAoBA,YAApB;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,MAAL,GAAcA,MAAd;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKC,aAAL,GAAqBA,aAArB;IACA,KAAKC,aAAL,GAAqBA,aAArB;IACA,KAAKE,QAAL,GAAgB,IAAIC,GAAJ,EAAhB;IACA,KAAKX,IAAL,GAAYA,IAAZ;IACA,KAAKC,EAAL,GAAUA,EAAV;IACA,KAAKW,KAAL,GAAaV,IAAb;EACD;;EAEDW,mBAAmB,GAAU;IAC3BC,KAAK,CAACC,IAAN,CAAW,KAAKL,QAAL,CAAcM,IAAd,EAAX,EACGC,MADH,CACUC,QAAQ,IAAI,KAAKC,sBAAL,CAA4BD,QAA5B,CADtB,EAEGE,GAFH,CAEOF,QAAQ,IAAI,KAAKG,UAAL,CAAgBH,QAAhB,EAA0BI,GAF7C,EAGGC,OAHH,CAGWC,MAAM,IAAIA,MAAM,CAACC,MAAP,CAActC,OAAO,CAACuC,aAAtB,EAAqC,KAAKC,WAAL,EAArC,CAHrB;EAID;;EAEDC,aAAa,CAAEC,OAAF,EAAoC;IAC/C,MAAMD,aAAN,CAAoBC,OAApB;;IACA,KAAKhB,mBAAL;EACD;;EAEe,MAAViB,UAAU,CACdC,OADc,EAEdtB,OAFc,EAGC;IACf,MAAM,MAAMqB,UAAN,CAAiBC,OAAjB,EAA0BtB,OAA1B,CAAN;;IACA,KAAKI,mBAAL;EACD;;EAEDmB,QAAQ,GAA+B;IACrC,KAAKC,mBAAL;IACA,OAAO;MAAEC,IAAI,EAAE;QAAEC,GAAG,EAAE,KAAKC,GAAL,CAASD,GAAhB;QAAqBnC,IAAI,EAAE,KAAKqC;MAAhC;IAAR,CAAP;EACD;;EAEe,MAAVC,UAAU,CAAEtC,IAAF,EAA+B;IAC7C,MAAMsC,UAAN,CAAiBtC,IAAjB;IACA,MAAMuC,SAAS,GAAG,MAAM,KAAKC,YAAL,EAAxB;IACA1B,KAAK,CAACC,IAAN,CAAW,KAAKL,QAAL,CAAcM,IAAd,EAAX,EACGC,MADH,CACUC,QAAQ,IAAI,KAAKuB,qBAAL,CAA2BvB,QAA3B,CADtB,EAEGE,GAFH,CAEOF,QAAQ,IAAI,KAAKG,UAAL,CAAgBH,QAAhB,CAFnB,EAGGK,OAHH,CAGWC,MAAM,IAAI;MACjBA,MAAM,CAACF,GAAP,CAAWG,MAAX,CAAkBtC,OAAO,CAACuD,aAA1B,EAAyC;QACvCH,SADuC;QAEvC,IAAGf,MAAM,CAACmB,WAAP,IAAsB,KAAKX,QAAL,EAAzB;MAFuC,CAAzC;IAID,CARH;EASD;;EAEDX,UAAU,CAAEH,QAAF,EAAoC;IAC5C,MAAMM,MAAM,GAAG,KAAKd,QAAL,CAAckC,GAAd,CAAkB1B,QAAlB,CAAf;;IACA,IAAIM,MAAM,IAAI,IAAd,EAAoB,MAAM,IAAI7B,qBAAJ,CAA0BuB,QAA1B,CAAN;IACpB,OAAOM,MAAP;EACD;;EAEDL,sBAAsB,CAAED,QAAF,EAA6B;IACjD,OAAO,KAAKuB,qBAAL,CAA2BvB,QAA3B,KACL,KAAKG,UAAL,CAAgBH,QAAhB,EAA0B2B,mBAA1B,CAA8CC,IAA9C,KAAuD,CADzD;EAED;;EAEDL,qBAAqB,CAAEvB,QAAF,EAA6B;IAChD,OAAO9B,UAAU,CAAC2D,SAAX,KAAyB,KAAK1B,UAAL,CAAgBH,QAAhB,EAA0B8B,MAAnD,IACL,KAAK3B,UAAL,CAAgBH,QAAhB,EAA0BI,GAA1B,CAA8B2B,UAA9B,CAAyCC,WAAzC,EADF;EAED;;EAEDC,oBAAoB,CAAEjC,QAAF,EAA0B;IAC5C,MAAMM,MAAM,GAAG,KAAKH,UAAL,CAAgBH,QAAhB,CAAf;;IACAM,MAAM,CAACF,GAAP,CAAW2B,UAAX,CAAsBG,UAAtB;IACA5B,MAAM,CAACwB,MAAP,GAAgB5D,UAAU,CAACiE,YAA3B;IACA7B,MAAM,CAACqB,mBAAP,GAA6B,IAAIS,GAAJ,EAA7B;EACD;EAED;AACF;AACA;AACA;;;EACEC,eAAe,CAAEtD,EAAF,EAAoB;IACjC,KAAKkD,oBAAL,CAA0BlD,EAA1B;;IACA,KAAKS,QAAL,CAAc8C,MAAd,CAAqBvD,EAArB;EACD;EAED;AACF;AACA;AACA;AACA;;;EACEwD,YAAY,CAAEC,gBAAF,EAA+C;IACzD;IACA;IACA,MAAMzD,EAAE,GAAGlB,IAAI,EAAf;IACA,IAAI4E,gBAAJ;IACA,MAAMnC,MAAsB,GAAG;MAC7BvB,EAD6B;MAE7B+C,MAAM,EAAE5D,UAAU,CAACwE,8BAFU;MAG7Bf,mBAAmB,EAAE,IAAIS,GAAJ,EAHQ;MAI7BX,WAAW,EAAE,KAJgB;MAK7BrB,GAAG,EAAE,IAAIpC,SAAJ,CACHwE,gBADG,EAEH,MAAM;QACJ,KAAKhD,QAAL,CAAc8C,MAAd,CAAqBvD,EAArB;;QACA,KAAKK,YAAL,CAAkBL,EAAlB,EAAsB0D,gBAAtB,EAFI,CAEoC;MACzC,CALE,EAKA;QACD,CAACxE,OAAO,CAAC0E,eAAT,GAA4BC,MAAD,IAAY;UACrCH,gBAAgB,GAAGG,MAAnB;;UACA,KAAKX,oBAAL,CAA0BlD,EAA1B;QACD,CAJA;QAKD;QACA;QACA,CAACd,OAAO,CAAC4E,OAAT,GAAmB,cAA8CC,MAA9C,KAAyD;UAAA,IAAlD;YAAEhE,IAAF;YAAQiE,OAAR;YAAiBC,KAAjB;YAAwBvB;UAAxB,CAAkD;UAC1E,IAAIsB,OAAO,KAAKrE,WAAhB,EAA6B,MAAM,IAAIF,2BAAJ,EAAN;UAE7B,MAAM,KAAKS,YAAL,CAAkBF,EAAlB,EAAsB;YAAED,IAAF;YAAQkE,KAAR;YAAevB;UAAf,CAAtB,EAAoDqB,MAApD,CAAN;UACAxC,MAAM,CAACwB,MAAP,GAAgB5D,UAAU,CAAC2D,SAA3B;UACAvB,MAAM,CAACmB,WAAP,GAAqBA,WAArB;UACA,OAAO,EACL,IAAG,MAAM,KAAKwB,aAAL,EAAT,CADK;YAEL,IAAGxB,WAAW,IAAI,KAAKX,QAAL,EAAlB;UAFK,CAAP;QAID,CAjBA;QAkBD,CAAC7C,OAAO,CAACiF,gBAAT,GAA4B,cAAwBJ,MAAxB,KAAmC;UAAA,IAA5B;YAAE9D,IAAF;YAAQmE;UAAR,CAA4B;UAC7D,IAAI,CAAC,KAAK5B,qBAAL,CAA2BxC,EAA3B,CAAL,EAAqC,MAAM,IAAIT,oBAAJ,EAAN;UAErC,MAAM,KAAKY,cAAL,CAAoBH,EAApB,EAAwB;YAAEC,IAAF;YAAQmE;UAAR,CAAxB,EAAyCL,MAAzC,CAAN;;UAEA,QAAQ9D,IAAR;YACE,KAAKb,kBAAkB,CAACiF,SAAxB;cACE9C,MAAM,CAACqB,mBAAP,CAA2B0B,GAA3B,CAA+BF,KAA/B;cACA;;YACF,KAAKhF,kBAAkB,CAACmF,WAAxB;cACEhD,MAAM,CAACqB,mBAAP,CAA2BW,MAA3B,CAAkCa,KAAlC;cACA;UANJ;;UASA,OAAO;YACLI,YAAY,EAAE3D,KAAK,CAACC,IAAN,CAAWS,MAAM,CAACqB,mBAAlB,CADT;YAELhB,OAAO,EAAE,KAAKF,WAAL;UAFJ,CAAP;QAID,CApCA;QAqCD,CAACxC,OAAO,CAAC0C,OAAT,GAAmB,OAAOiC,MAAP,EAAeE,MAAf,KAA0B;UAC3C,IAAI,CAAC,KAAK7C,sBAAL,CAA4BlB,EAA5B,CAAL,EAAsC,MAAM,IAAIT,oBAAJ,EAAN;UACtC,MAAM,KAAKe,aAAL,CAAmBN,EAAnB,EAAuB6D,MAAvB,EAA+BE,MAA/B,CAAN;UACA,OAAO,KAAKU,SAAL,EAAP;QACD,CAzCA;QA0CD,CAACvF,OAAO,CAACwF,IAAT,GAAgB,cAAwCX,MAAxC,KAAmD;UAAA;;UAAA,IAA5C;YAAEY,EAAF;YAAMC,SAAN;YAAiBC;UAAjB,CAA4C;UACjE,IAAI,CAAC,KAAKrC,qBAAL,CAA2BxC,EAA3B,CAAL,EAAqC,MAAM,IAAIT,oBAAJ,EAAN;UACrC,cAAAqF,SAAS,UAAT,yCAAAA,SAAS,GAAK,MAAM,KAAKhD,OAAL,EAApB;;UACA,IAAI,CAAC,0CAAK6C,SAAL,mBAA0BG,SAA1B,CAAL,EAA2C;YACzC,MAAM,IAAIpF,sBAAJ,CAA2BoF,SAA3B,CAAN;UACD;;UAED,MAAME,SAAS,GAAG,MAAM,KAAK1E,MAAL,CAAYJ,EAAZ,EAAgB;YAAE2E,EAAF;YAAME,YAAN;YAAoBD;UAApB,CAAhB,EAAiDb,MAAjD,CAAxB;UACAa,SAAS,2BAAGE,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEF,SAAd,uEAA2BA,SAApC;UACAD,EAAE,oBAAGG,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEH,EAAd,yDAAoBA,EAAtB;;UACA,IAAIE,YAAJ,EAAkB;YAChB,OAAO;cAAEE,iBAAiB,EAAE,MAAM,KAAKC,eAAL,CAAqBL,EAArB,EAAyB;gBAAEC;cAAF,CAAzB;YAA3B,CAAP;UACD;;UACD,IAAI;YACF,OAAOhF,OAAO,CAACqF,KAAR,CAAcrF,OAAO,CAACsF,SAAR,CAAkB;cACrCC,eAAe,EAAE,MAAM,KAAKC,IAAL,CAAUT,EAAV,EAAc;gBAAEC,SAAF;gBAAaS,MAAM,EAAE;cAArB,CAAd;YADc,CAAlB,CAAd,CAAP;UAGD,CAJD,CAIE,OAAOC,KAAP,EAAc;YACd,MAAMC,UAAU,GAAG,MAAMvG,iBAAiB,CAAC2F,EAAD,EAAK,KAAKxC,GAAV,CAA1C;YACA,IAAIoD,UAAU,CAACC,MAAX,GAAoB,CAAxB,EAA2B,MAAM,IAAIlG,0BAAJ,CAA+BiG,UAA/B,CAAN;YAC3B,MAAM,IAAIlG,iBAAJ,CAAsBiG,KAAK,CAACG,OAA5B,CAAN;UACD;QACF,CAhEA;QAiED,CAACvG,OAAO,CAACwG,WAAT,GAAuB,cAA+B3B,MAA/B,KAA0C;UAAA;;UAAA,IAAnC;YAAE0B,OAAF;YAAWb;UAAX,CAAmC;UAC/D,IAAI,CAAC,KAAKpC,qBAAL,CAA2BxC,EAA3B,CAAL,EAAqC,MAAM,IAAIT,oBAAJ,EAAN;UACrC,eAAAqF,SAAS,UAAT,2CAAAA,SAAS,GAAK,MAAM,KAAKhD,OAAL,EAApB;;UACA,IAAI,CAAC,2CAAK6C,SAAL,oBAA0BG,SAA1B,CAAL,EAA2C;YACzC,MAAM,IAAIpF,sBAAJ,CAA2BoF,SAA3B,CAAN;UACD;;UAED,MAAME,SAAS,GAAG,MAAM,KAAKvE,aAAL,CAAmBP,EAAnB,EAAuB;YAAEyF,OAAF;YAAWb;UAAX,CAAvB,EAA+Cb,MAA/C,CAAxB;UACAa,SAAS,4BAAGE,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEF,SAAd,yEAA2BA,SAApC;UACA,OAAO;YACL;YACAe,SAAS,EAAE,MAAM,KAAKD,WAAL,CAAiBD,OAAjB,EAA0B;cAAEb,SAAF;cAAagB,SAAS,EAAE;YAAxB,CAA1B;UAFZ,CAAP;QAKD;MA/EA,CALA;IALwB,CAA/B;;IA4FA,KAAKnF,QAAL,CAAcoF,GAAd,CAAkB7F,EAAlB,EAAsBuB,MAAtB;;IACA,OAAOvB,EAAP;EACD;EAED;AACF;AACA;AACA;;;EACuB,MAAf8F,eAAe,CAAE7E,QAAF,EAAmC;IACtD,KAAKG,UAAL,CAAgBH,QAAhB,EAA0BI,GAA1B,CAA8BG,MAA9B,CAAqCtC,OAAO,CAAC6G,cAA7C,EAA6D,MAAM,KAAK7B,aAAL,EAAnE;EACD;EAED;AACF;AACA;AACA;;;EACqB,MAAbA,aAAa,GAAyB;IAC1C,OAAO;MACLlE,EAAE,EAAE,KAAKA,EADJ;MAELD,IAAI,EAAE,KAAKA,IAFN;MAGLuC,SAAS,EAAE,MAAM,KAAKC,YAAL,EAHZ;MAILwB,MAAM,EAAEiC,MAAM,CAACC,QAAP,CAAgBlC,MAJnB;MAKL9D,IAAI,EAAE,KAAKU;IALN,CAAP;EAOD;EAED;AACF;AACA;AACA;;;EACEe,WAAW,GAAc;IACvB,OAAO;MACLwE,OAAO,EAAE,KAAKC,eAAL,IAAwB,IAAxB,GAA+B;QAAE,CAAC,KAAKA,eAAN,GAAwB;MAA1B,CAA/B,GAAgE,EADpE;MAELC,SAAS,EAAE,KAAK3B,SAAL,GACRzD,MADQ,CACAqF,CAAD,IAAOA,CAAC,KAAK,KAAKF,eADjB,EAERG,MAFQ,CAED,CAACC,GAAD,EAAMF,CAAN,MAAa,EAAE,GAAGE,GAAL;QAAU,CAACF,CAAD,GAAK;MAAf,CAAb,CAFC,EAEkC,EAFlC;IAFN,CAAP;EAMD;;AA7Q4C"}
package/es/Node.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ import { OperationArguments, OperationSpec } from '@azure/core-client';
2
+ import { Node as NodeApi, NodeOptionalParams } from './apis/node/';
3
+ import { EncodedData } from './utils/encoder';
4
+ /**
5
+ * Obtain networkId from account or node
6
+ */
7
+ export declare function getNetworkId({ networkId }?: {
8
+ networkId?: string;
9
+ }): Promise<string>;
10
+ declare const bigIntPropertyNames: readonly ["balance", "queryFee", "fee", "amount", "nameFee", "channelAmount", "initiatorAmount", "responderAmount", "channelReserve", "initiatorAmountFinal", "responderAmountFinal", "gasPrice", "deposit"];
11
+ declare const numberPropertyNames: readonly ["time", "gas", "gasUsed", "nameSalt", "nonce", "nextNonce", "height", "blockHeight", "top", "topBlockHeight", "ttl", "inbound", "outbound", "peerCount", "pendingTransactionsCount", "effectiveAtHeight", "version", "solutions"];
12
+ declare type BigIntPropertyNames = typeof bigIntPropertyNames[number];
13
+ declare type NumberPropertyNames = typeof numberPropertyNames[number];
14
+ declare type PreserveOptional<NewType, OrigType> = OrigType extends undefined ? NewType | undefined : NewType;
15
+ export declare 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 {
16
+ [P in any]: any;
17
+ } ? {
18
+ [Property in keyof Type]: Property extends BigIntPropertyNames ? PreserveOptional<bigint, Type[Property]> : Property extends NumberPropertyNames ? PreserveOptional<number, Type[Property]> : Property extends 'txHash' ? PreserveOptional<EncodedData<'th'>, Type[Property]> : TransformNodeType<Type[Property]>;
19
+ } : Type;
20
+ declare type TransformedNode = new (...args: ConstructorParameters<typeof NodeApi>) => {
21
+ [Name in keyof InstanceType<typeof NodeApi>]: TransformNodeType<NodeApi[Name]>;
22
+ };
23
+ export interface NodeInfo {
24
+ url: string;
25
+ nodeNetworkId: string;
26
+ version: string;
27
+ consensusProtocolVersion: number;
28
+ }
29
+ declare const Node_base: TransformedNode;
30
+ export default class Node extends Node_base {
31
+ #private;
32
+ url: string;
33
+ /**
34
+ * @param url - Url for node API
35
+ * @param options - Options
36
+ * @param options.ignoreVersion - Don't check node version
37
+ */
38
+ constructor(url: string, { ignoreVersion, ...options }?: NodeOptionalParams & {
39
+ ignoreVersion?: boolean;
40
+ });
41
+ getNodeInfo(): Promise<NodeInfo>;
42
+ sendOperationRequest(operationArguments: OperationArguments, operationSpec: OperationSpec): Promise<any>;
43
+ }
44
+ export {};
package/es/Node.mjs ADDED
@@ -0,0 +1,141 @@
1
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
2
+
3
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
4
+
5
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
6
+
7
+ import BigNumber from 'bignumber.js';
8
+ import { genRequestQueuesPolicy, genCombineGetRequestsPolicy, genErrorFormatterPolicy, genVersionCheckPolicy } from "./utils/autorest.mjs";
9
+ import { Node as NodeApi } from "./apis/node/index.mjs";
10
+ import { mapObject } from "./utils/other.mjs";
11
+ import { MissingParamError } from "./utils/errors.mjs";
12
+ /**
13
+ * Obtain networkId from account or node
14
+ */
15
+
16
+ export async function getNetworkId() {
17
+ var _ref, _this$api;
18
+
19
+ let {
20
+ networkId
21
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
+ const res = (_ref = networkId !== null && networkId !== void 0 ? networkId : this.networkId) !== null && _ref !== void 0 ? _ref : (await ((_this$api = this.api) === null || _this$api === void 0 ? void 0 : _this$api.getStatus())).networkId;
23
+ if (res != null) return res;
24
+ throw new MissingParamError('networkId is not provided');
25
+ }
26
+ const bigIntPropertyNames = ['balance', 'queryFee', 'fee', 'amount', 'nameFee', 'channelAmount', 'initiatorAmount', 'responderAmount', 'channelReserve', 'initiatorAmountFinal', 'responderAmountFinal', 'gasPrice', 'deposit'];
27
+ const numberPropertyNames = ['time', 'gas', 'gasUsed', 'nameSalt', 'nonce', 'nextNonce', 'height', 'blockHeight', 'top', 'topBlockHeight', 'ttl', 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight', 'version', 'solutions'];
28
+
29
+ var _mapData = /*#__PURE__*/new WeakSet();
30
+
31
+ var _encodeArg = /*#__PURE__*/new WeakSet();
32
+
33
+ var _decodeRes = /*#__PURE__*/new WeakSet();
34
+
35
+ export default class Node extends NodeApi {
36
+ /**
37
+ * @param url - Url for node API
38
+ * @param options - Options
39
+ * @param options.ignoreVersion - Don't check node version
40
+ */
41
+ constructor(url) {
42
+ let {
43
+ ignoreVersion = false,
44
+ ...options
45
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
46
+ // eslint-disable-next-line constructor-super
47
+ super(url, {
48
+ allowInsecureConnection: true,
49
+ additionalPolicies: [genRequestQueuesPolicy(), genCombineGetRequestsPolicy(), genErrorFormatterPolicy(body => ` ${body.reason}`)],
50
+ ...options
51
+ });
52
+
53
+ _classPrivateMethodInitSpec(this, _decodeRes);
54
+
55
+ _classPrivateMethodInitSpec(this, _encodeArg);
56
+
57
+ _classPrivateMethodInitSpec(this, _mapData);
58
+
59
+ this.url = url;
60
+
61
+ if (!ignoreVersion) {
62
+ const versionPromise = this.getStatus().then(_ref2 => {
63
+ let {
64
+ nodeVersion
65
+ } = _ref2;
66
+ return nodeVersion;
67
+ });
68
+ this.pipeline.addPolicy(genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'));
69
+ }
70
+
71
+ this.intAsString = true;
72
+ }
73
+
74
+ async getNodeInfo() {
75
+ const {
76
+ nodeVersion: version,
77
+ networkId: nodeNetworkId,
78
+ protocols,
79
+ topBlockHeight
80
+ } = await this.getStatus();
81
+ const consensusProtocolVersion = protocols.filter(_ref3 => {
82
+ let {
83
+ effectiveAtHeight
84
+ } = _ref3;
85
+ return topBlockHeight >= effectiveAtHeight;
86
+ }).reduce((acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc, {
87
+ effectiveAtHeight: -1,
88
+ version: 0
89
+ }).version;
90
+ return {
91
+ url: this.url,
92
+ nodeNetworkId,
93
+ version,
94
+ consensusProtocolVersion
95
+ };
96
+ } // @ts-expect-error https://github.com/microsoft/TypeScript/issues/27689
97
+
98
+
99
+ async sendOperationRequest(operationArguments, operationSpec) {
100
+ const args = mapObject(operationArguments, _ref4 => {
101
+ let [key, value] = _ref4;
102
+ return [key, _classPrivateMethodGet(this, _encodeArg, _encodeArg2).call(this, value)];
103
+ });
104
+ return _classPrivateMethodGet(this, _decodeRes, _decodeRes2).call(this, await super.sendOperationRequest(args, operationSpec));
105
+ }
106
+
107
+ }
108
+
109
+ function _mapData2(data, transform) {
110
+ if (Array.isArray(data)) return data.map(d => _classPrivateMethodGet(this, _mapData, _mapData2).call(this, d, transform));
111
+
112
+ if (data != null && typeof data === 'object') {
113
+ return mapObject(data, _ref5 => {
114
+ let [key, value] = _ref5;
115
+ if (value == null) return [key, value];
116
+ if (bigIntPropertyNames.some(k => k === key)) return [key, transform.bigInt(value)];
117
+ if (numberPropertyNames.some(k => k === key)) return [key, transform.number(value)];
118
+ return [key, _classPrivateMethodGet(this, _mapData, _mapData2).call(this, value, transform)];
119
+ });
120
+ }
121
+
122
+ return data;
123
+ }
124
+
125
+ function _encodeArg2(data) {
126
+ return _classPrivateMethodGet(this, _mapData, _mapData2).call(this, data, {
127
+ bigInt: value => {
128
+ if (value instanceof BigNumber) return value.toFixed();
129
+ return value.toString();
130
+ },
131
+ number: value => value.toString()
132
+ });
133
+ }
134
+
135
+ function _decodeRes2(data) {
136
+ return _classPrivateMethodGet(this, _mapData, _mapData2).call(this, data, {
137
+ bigInt: value => BigInt(value),
138
+ number: value => +value
139
+ });
140
+ }
141
+ //# sourceMappingURL=Node.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Node.mjs","names":["BigNumber","genRequestQueuesPolicy","genCombineGetRequestsPolicy","genErrorFormatterPolicy","genVersionCheckPolicy","Node","NodeApi","mapObject","MissingParamError","getNetworkId","networkId","res","api","getStatus","bigIntPropertyNames","numberPropertyNames","constructor","url","ignoreVersion","options","allowInsecureConnection","additionalPolicies","body","reason","versionPromise","then","nodeVersion","pipeline","addPolicy","intAsString","getNodeInfo","version","nodeNetworkId","protocols","topBlockHeight","consensusProtocolVersion","filter","effectiveAtHeight","reduce","acc","p","sendOperationRequest","operationArguments","operationSpec","args","key","value","data","transform","Array","isArray","map","d","some","k","bigInt","number","toFixed","toString","BigInt"],"sources":["../src/Node.ts"],"sourcesContent":["import 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 { EncodedData } from './utils/encoder'\nimport { MissingParamError } from './utils/errors'\n\n/**\n * Obtain networkId from account or node\n */\nexport async function getNetworkId ({ networkId }: { networkId?: string } = {}): Promise<string> {\n const res = networkId ?? this.networkId ?? (await this.api?.getStatus()).networkId\n if (res != null) return res\n throw new MissingParamError('networkId is not provided')\n}\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', 'ttl',\n 'inbound', 'outbound', 'peerCount', 'pendingTransactionsCount', 'effectiveAtHeight',\n 'version', 'solutions'\n] as const\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<EncodedData<'th'>, Type[Property]>\n : TransformNodeType<Type[Property]>\n }\n : Type\ntype TransformedNode = new (...args: ConstructorParameters<typeof NodeApi>) => {\n [Name in keyof InstanceType<typeof NodeApi>]: 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 (NodeApi as unknown as TransformedNode) {\n url: 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 this.url = url\n if (!ignoreVersion) {\n const versionPromise = this.getStatus().then(({ nodeVersion }) => nodeVersion)\n this.pipeline.addPolicy(genVersionCheckPolicy('node', '/v3/status', versionPromise, '6.2.0', '7.0.0'))\n }\n this.intAsString = true\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.url,\n nodeNetworkId,\n version,\n consensusProtocolVersion\n }\n }\n\n // @ts-expect-error https://github.com/microsoft/TypeScript/issues/27689\n async sendOperationRequest (\n operationArguments: OperationArguments, 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 (\n data: any, transform: {\n bigInt: (v: any) => any\n number: (v: any) => any\n }\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"],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { EncodedData } from '../utils/encoder';
2
+ import { getNetworkId } from '../Node';
3
+ /**
4
+ * Check is provided object looks like an instance of AccountBase
5
+ * @param acc - Object to check
6
+ */
7
+ export declare const isAccountBase: (acc: AccountBase | any) => boolean;
8
+ /**
9
+ * Account is one of the three basic building blocks of an
10
+ * {@link AeSdk} and provides access to a signing key pair.
11
+ */
12
+ export default abstract class AccountBase {
13
+ networkId?: string;
14
+ /**
15
+ * @param options - Options
16
+ * @param options.networkId - Using for signing transactions
17
+ */
18
+ constructor({ networkId }?: {
19
+ networkId?: string;
20
+ });
21
+ /**
22
+ * Sign encoded transaction
23
+ * @param tx - Transaction to sign
24
+ * @param opt - Options
25
+ * @param opt.innerTx - Sign as inner transaction for PayingFor
26
+ * @returns Signed transaction
27
+ */
28
+ signTransaction(tx: EncodedData<'tx'>, { innerTx, networkId, ...options }?: {
29
+ innerTx?: boolean;
30
+ networkId?: string;
31
+ }): Promise<EncodedData<'tx'>>;
32
+ /**
33
+ * Get network Id
34
+ * @returns Network Id
35
+ */
36
+ readonly getNetworkId: typeof getNetworkId;
37
+ /**
38
+ * Sign message
39
+ * @param message - Message to sign
40
+ * @param opt - Options
41
+ * @returns Signature as hex string of Uint8Array
42
+ */
43
+ signMessage(message: string, { returnHex, ...options }?: {
44
+ returnHex?: boolean;
45
+ }): Promise<string | Uint8Array>;
46
+ /**
47
+ * Verify message
48
+ * @param message - Message to verify
49
+ * @param signature - Signature
50
+ * @param options - Options
51
+ */
52
+ verifyMessage(message: string, signature: string | Uint8Array, options?: object): Promise<boolean>;
53
+ /**
54
+ * Sign data blob
55
+ * @param data - Data blob to sign
56
+ * @param options - Options
57
+ * @returns Signed data blob
58
+ */
59
+ abstract sign(data: string | Uint8Array, options?: any): Promise<Uint8Array>;
60
+ /**
61
+ * Obtain account address
62
+ * @returns Public account address
63
+ */
64
+ abstract address(opt?: object): Promise<EncodedData<'ak'>>;
65
+ }